Lỗi lúc biên dịch

#include <iostream>
using namespace std;

class HocSinh {
private:
	string HoTen;
	int MSSV;
public:
	// Hàm khởi tạo 
	HocSinh();
	// Hàm khởi tạo có tham só truyền vào
	HocSinh(int mssv, string hoten)
	{
		HoTen = hoten;
		MSSV = mssv;
	}
	// cú pháp hàm khỏi tạo sao chép:
	// Phải dùng truyền tham chiếu vì nếu tham trị thì sẽ tạo 1 bản sao nhưng lúc đó hàm khởi tạo sao chép vẫn chưa dược tạo
	HocSinh(const HocSinh& hs)
	{
		HoTen = hs.HoTen;
		// đặt const để bảo vệ hs ko bị thay đổi giá trị nếu có lỡ dùng lệnh nào tác động trong phần định nghĩa này
	}
};


int main()
{
	HocSinh hs(1, "khang"), hs2;
	hs2 = HocSinh(hs);
	system("pause");
	return 0;
}



Mọi người xem giúp mình sao code ko lỗi nhưng chạy lại ko được ghi là lỗi biên dịch gì đó mà mình mò cả buổi vẫn khong biết sai chỗ nào.

dòng 29. hs là khai báo sao lại có cái khúc đằng sau?

6 Likes

Lâu rồi anh không đụng tới C++, nhưng mà em thấy cái hàm khởi tạo mặc định (default constructor) ở dòng #10 có gì không?

6 Likes

Em nghĩ có lẽ là ở HocSinh(). Anh thêm cặp ngoặc nhọn vào sau xem sao. Khai báo nguyên mẫu mà…

6 Likes

Bạn chưa định nghĩa hàm khởi tạo không tham số, bạn chỉ mới khai báo thôi.

5 Likes

Mình hiểu r cảm ơn mọi người

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?