Truyền struct vào hàm bị lỗi

tại sao mình truyền struct vào ntn bị lỗi ạ?

class people{
	protected:
		char* name;
		struct Date{
			int ngay,thang,nam;
		};
		int id_code;
		Date date;
	public:
		people(char* name, Date date,int id_code){
			this->name=name;
			this->date=date;
			this->id_code=id_code;
		}
}
int main(){
	people p("adasdasda",{11,22,33},22);
	return 0;
}

Lỗi gì???

4 Likes

Lần sau hỏi những câu như thế này thì phải cho biết lỗi chính xác là gì =.=

Còn theo mình thấy thì lỗi không nằm ở phần struct mà có vẻ như nằm ở phần constructor parameter, nếu như bạn muốn truyền tham số vào constructor như trên thì phải xài const char*:

people(const char* name, Date date,int id_code){
			this->name=name;
			this->date=date;
			this->id_code=id_code;
		}
people p("adasdasda",{11,22,33},22);

Còn nếu như bạn muốn truyền tham số vào constructor bằng cách nhập từ bàn phím thì mới xài char* được:

class people{
	protected:
		char* name;
		struct Date{
			int ngay,thang,nam;
		};
		int id_code;
		Date date;
	public:
		people(char* name, Date date,int id_code){
			this->name=name;
			this->date=date;
			this->id_code=id_code;
		}
}
int main(){
    char* str = new char;
    cin >> str;
	people p(str,{11,22,33},22);
	return 0;
}
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?