一个C++运算符重载的问题
#include <windows.h>
#include <iostream>
using namespace std;
class test//test可以作为char*类型的参数
{
public:
test(){ i=0;}
test(const test&t):i(t.i){}
char* i;
//下面两个操作符的重载是为了让test像char*一样的使用
operator char*(){return i;}
operator const char*()const{return i;}
};
void showmsg(char*t){MessageBox(0,t,"",MB_OK);}
template <typename T> class Test//Test可以作为类型为T的参数
{
T t;
public:
Test(const T& _t):t(_t){}
//下面两个操作符的重载是为了让Test像test一样的使用
operator T(){return t;}
operator const T&()const{return t;}
};
void main()
{
test t;
char *ssss="我是中国人";
t.i=ssss;
Test<test> ss(t);
showmsg(ss); //在这里,调用时却实失败了,不知道有什么其他办法
}