Lỗi linker (LNK2019) trong khai báo class

Chào mọi người, mình đang code bài quản lí sinh viên thì bị lỗi linker này, khó hiểu ở chỗ là ở project khác trong solution mình code y chang vậy, chỉ thay đổi các tên biến lại, nó không lỗi.
Ai có nhiều kinh nghiệm xử lí lỗi này thì xin chỉ giáo, mình dùng VS2013 :smiley:

Do code hơi dài (thực ra mình lược bớt rồi) nên xin được post code lên codepad cho dễ nhìn:
File .h: http://codepad.org/Tq41p2xq
File .cpp: http://codepad.org/9SWbTiWW

Lỗi linker 2019 nó báo ở 2 hàm trong phần protected.

có thể là do việc copy file, quăng vào project nhưng quên không add file vào IDE?

không, tui tạo class dùng class wizard xong rồi copy từ file bên kia rồi sửa lại tên biến các kiểu :smiley:

//ouput, input
	friend std::ostream& operator<<(std::ostream& os, const Daihoc& obj);
	friend std::istream& operator>>(std::istream& is, Daihoc& obj);

Bạn dùng từ khóa friend mà có thấy hàm

std::ostream& operator<<(std::ostream& os, const Daihoc& obj);

hay

std::istream& operator>>(std::istream& is, Daihoc& obj);

nào ở bên ngoài class trong file .h đâu

trong file .cpp có một đoạn

std::ostream& operator<<(std::ostream& os, const Daihoc& obj)
{
	return obj.print(os);
}
std::istream& operator>>(std::istream& is, Daihoc& obj)
{
	int size1 = 0, size2 = 0;
	std::cout << "Nhap so luong SV CNTN: ";
	is >> size1;
	std::cout << "\nNhap so luong SV CTTT: ";
	is >> size2;
	std::cout << std::endl;
	return obj.input(is, size1, size2);
}

Đó là phần định nghĩa hàm friend rồi, còn khai báo hàm friend đặt ở đâu ko thấy.

cảm ơn mọi người, mình sửa được rồi :smiley: lỗi này do bất cẩn, quên cho định nghĩa 1 operator>> << cho class SVTT

//ouput, input
	friend std::ostream& operator<<(std::ostream& os, const Daihoc& obj);
	friend std::istream& operator>>(std::istream& is, Daihoc& obj);

đoạn này trong .h gọi là gì vậy anh? Khai báo?

Theo mình hiểu thì phải có đối tượng trước thì mới có quan hệ bạn bè.
Đặt hàm

friend std::ostream& operator<<(std::ostream& os, const Daihoc& obj);

trong class thì bên ngoài class ít ra cũng phải có khai báo

std::ostream& operator<<(std::ostream& os, const Daihoc& obj);

Mình ko biết chắc vì trước giờ mình chỉ dùng cách này thôi. Nếu cách trên dùng bình thường thì cứ dùng thôi chứ ko cần phải làm theo mình.

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