首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-22 
关于operator char*()的问题我定义了一个student类,重载了char*()C/C++ codestudent::operator char*(){ch

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

热点排行