关于operator char*()的有关问题
关于operator char*()的问题
我定义了一个student类,重载了char*()
为什么输出的是地址(0046F01C),而不直接输出字符串?
------解决方案--------------------
char*本来就是地址……况且你重载了以后不是内置类型了,cout仅仅对内置类型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); }