CString str;
str = "hello,world";
printf("%sn",str);
这个printf语句,在windows下行正确运行;
但我一直不知道这样调用它到底调用了那一个operator的转换?
我在Linux下写CString类时,定义了
operator char*()
和operator const char*()
两个类型转换,可是
printf("%sn",str);这种写法编译时警告通过,但运行时出现错误.
如果写成printf("%sn",(char*)str);一切都OK了.
想问一下,windows下是如何实现的??
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
class MyString
{
public:
char *teststr;
MyString()
{
teststr="testit";
}
};
int main(int argc, char* argv[])
{
MyString mys;
printf("%s",mys.teststr);
return 0;
}
必须要这样才行
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。