关于模板中的运算符重载
想在模板中实现运算符<<的重载
#include <iostream>
#include <cstring>
using namespace std;
template <typename TType>
ostream &operator <<(ostream &os, TType &a);
template <typename Type>
class Temp
{
private:
Type data;
public:
Temp():data(0){};
Temp(Type a){data = a;};
void Show();
friend ostream & operator <<(ostream &os, Temp<Type> &a);
};
template <typename TType>
ostream &operator <<(ostream &os, TType &a)
{
os << a.data << endl;
return os;
}
template <typename Type>
void Temp<Type>::Show()
{
cout << data << endl;
}
int main()
{
Temp<int> tint(100);
Temp<double> tdouble(11.1);
tint.Show();
tdouble.Show();
cout << tint;
//cout << tdouble;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
template <typename TType>
ostream &operator <<(ostream &os, TType &a);
template <typename Type>
class Temp
{
private:
Type data;
public:
Temp():data(0){};
Temp(Type a){data = a;};
void Show();
friend ostream & operator <<(ostream &os, Temp<Type> &a) {
os << a.data << endl;
return os;
}
};
//template <typename TType>
//ostream &operator <<(ostream &os, TType &a)
template <typename Type>
void Temp<Type>::Show()
{
cout << data << endl;
}
int main()
{
Temp<int> tint(100);
Temp<double> tdouble(11.1);
tint.Show();
tdouble.Show();
cout << tint;
//cout << tdouble;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
template <typename Type>
class Temp
{
private:
Type data;
public:
Temp():data(0){};
Temp(Type a){data = a;};
void Show();
friend ostream & operator <<(ostream &os, Temp<Type> &a)
{
os << a.data << endl;
return os;
};
};
template <typename Type>
void Temp<Type>::Show()
{
cout << data << endl;
}
int main()
{
Temp<int> tint(100);
Temp<double> tdouble(11.1);
tint.Show();
tdouble.Show();
cout << tint;
cout << tdouble;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
template <typename TType>
ostream &operator <<(ostream &os, TType &a);
template <typename Type>
class Temp
{
private:
Type data;
public:
Temp():data(0){};
Temp(Type a){data = a;};
void Show();
friend ostream & operator << <>(ostream &os, Temp<Type> &a);
};
template <typename TType>
ostream &operator << <>(ostream &os, TType &a)
{
os << a.data << endl;
return os;
}
template <typename Type>
void Temp<Type>::Show()
{
cout << data << endl;
}
int main()
{
Temp<int> tint(100);
Temp<double> tdouble(11.1);
tint.Show();
tdouble.Show();
cout << tint;
//cout << tdouble;
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
template <typename Type>
class Temp
{
private:
Type data;
public:
Temp():data(0){};
Temp(Type a){data = a;};
void Show();
template <typename T>
friend ostream & operator <<(ostream &os, T &a);
};
template <typename T>
ostream &operator <<(ostream &os, T &a)
{
os << a.data << endl;
return os;
}
template <typename Type>
void Temp<Type>::Show()
{
cout << data << endl;
}
int main()
{
Temp<int> tint(100);
Temp<double> tdouble(11.1);
tint.Show();
tdouble.Show();
cout << tint;
cout << tdouble;
return 0;
}