01/10/2018, 12:12

Cần giúp đỡ về template C++

em có 2 cái class là class sách và class báo
em muốn dùng template Nhập Và Xuất chung cho 2 cái class này thì làm ntn ạ. Mong mọi người VD giúp em với ạ
em mới học về template nên ko biết làm ntn ạ

rogp10 viết 14:13 ngày 01/10/2018

Cái này bạn phải overload operator trước chứ nhỉ, rồi mới dùng template được.

Dark.Hades viết 14:25 ngày 01/10/2018

Tạo một Interface là InOutAbleInterface rồi overide nó là được rồi, mất công tạo template trong trường hợp này khá …

Nếu là template thì nên implement luôn contexpr C++17 để xác nhận kiểu dữ liệu cho chính xác

Đỗ Hải Nam viết 14:15 ngày 01/10/2018
#include<iostream>
using namespace std;
#include"string"
template<class T>
class Sach
{
	public:
		T Ten;
		
		friend ostream& operator<<(ostream& os,  Sach<T>& x)
		{
			return os << x.Ten;
		}
	
		friend istream& operator>>(istream& is, Sach<T>& x)
		{
			is >> x.Ten;
			return is;
		}
	protected:
};

int main()
{
	Sach < String > num3;
	cin>>num3; 
	cout<<num3;
}

Tại Sao chỗ cin>>num3;
em thay bằng getline(cin,num3) thì báo lỗi ạ

Đỗ Hải Nam viết 14:24 ngày 01/10/2018

em chưa được học về mấy cái đó ạ, Để em lên mạng tìm hiểu ạ.

Bài liên quan
0