关于类型强制转换,有点疑问。。
class Mystring{public: Mystring(string str) {str_ = str;} ~Mystring();private: string str_;}int fun(Mystring a){ //Process..}int main(){ string str; fun(Mystring(a)); return 0;}#include <string>using namespace std;class Mystring{public: Mystring(string str) {str_ = str;} ~Mystring() { } string str_;};int fun( Mystring a ){ //Process.. printf( a.str_.c_str() ); return 20;}int main(){ string str = "hello world!"; fun(Mystring(str)); return 0;}
[解决办法]
做类型转换只是告诉编译器怎么去取内容,你可以把string str 转成int, 那么编译器就从str起始地址取4个字节来获取其中的内容,转成double就取8个字节来取里面的内容,转成你的mystring,就取sizeof(mystring)个字节来解释。
[解决办法]