读书人

关于operator char*()的有关问题

发布时间: 2012-04-22 18:34:46 作者: rapoo

关于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);} 

读书人网 >C++

热点推荐