#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
class SinhVien{
string ID, grade, khoa, name;
public:
SinhVien();
SinhVien( string , string , string , string );
void setID( string );
void setGrade( string );
void setName( string );
void setKhoa( string );
string getID();
string getName();
string getGrade();
string getKhoa();
void display();
~SinhVien();
};
void SinhVien::SinhVien( string ID, string name, string lop, string khoa){
setName( name );
setID( ID );
setGrade( grade );
setKhoa( khoa );
}
void SinhVien::setName( string name){
this->name = name;
}
void SinhVien::setID( string ID){
this->ID = ID;
}
void SinhVien::setGrade( string grade){
this->grade = grade;
}
void SinhVien::setKhoa( string khoa){
this->khoa = khoa;
}
string SinhVien::getName(){
return this->name;
}
string SinhVien::getGrade(){
return this->grade;
}
string SinhVien::getID(){
return this->ID;
}
string SinhVien::getKhoa(){
return this->khoa;
}
void SinhVien::display(){
cout<< left << setw(30) << this->name << setw(15) << this->ID << setw(15) << this->grade << setw(15) << this->khoa << endl;
}
void nhapSV( SinhVien a){
string name,id,grade,khoa;
cin.ignore(1);
cout << "\nNhap ten:" ; getline(cin,name);
cout << "\nNhap ID:" ; getline(cin,id);
cout << "\nNhap lop:" ; getline(cin,grade);
cout << "\nNhap khoa:" ; getline(cin,khoa);
a.setGrade(grade);
a.setID(id);
a.setKhoa(khoa);
a.setName(name);
}
int main(){
SinhVien a;
nhapSV(a);
a.display();
return 0;
}
Tại sao hàm tạo có lỗi kiểu trả về không hợp lệ?
Sao không thấy new SinhVien() ở chỗ nào hết nhỉ? 
Có thể là SinhVien a = new SinhVien(); 
- Hàm dựng không có kiểu trả về. Bạn xóa void đi là được.
- Chưa thấy bạn định nghĩa cho hàm hủy.
1 Like
Khai báo bình thường vẫn được chứ không nhất thiết phải khai báo kiểu con trỏ.
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?