关于operator char*()的问题
我定义了一个student类,重载了char*()
- C/C++ code
student::operator char*(){ char *p="wow!"; return p;}int main(){ student stu; std::cout<<stu;//这怎么输出的是地址,而不直接输出字符串? return 0;}为什么输出的是地址(0046F01C),而不直接输出字符串?
[解决办法]
char*本来就是地址……况且你重载了以后不是内置类型了,cout仅仅对内置类型char*才会输出字符吧……
[解决办法]
- C/C++ code
student::operator char*() const{ char *p="wow!"; return p;}friend std::ostream& operator<<(std::ostream& os, cosnt student& s){ return os<<static_csat<const char*>(s);}