C++在类之间调用static_cast转换时,需要复制构造函数
2013-05-01 12:01
344 查看
下面代码因为T2没有实现T2(T1)复制构造函数,所以编译错误
g++报错:test.cpp|23 col 25| 错误: 对‘T2::T2(T1&)’的调用没有匹配的函数
类之间不能用reinterpret_cast转换,尽管定义了T2(T1&)也出错:
G++报错:test.cpp|27 col 33| 错误: 从类型‘T1’到类型‘T2’的转换无效
g++报错:test.cpp|23 col 25| 错误: 对‘T2::T2(T1&)’的调用没有匹配的函数
#include <vector> #include<stdio.h> #include <string.h> #include<iostream> #include <string> using namespace std; class T1{ public: int a; double b; }; class T2{ public: int a; double b; }; int main() { T1 t1; t1.a = 2, t1.b = 1.5; T2 t2 = static_cast<T2>(t1); return 0; }
类之间不能用reinterpret_cast转换,尽管定义了T2(T1&)也出错:
G++报错:test.cpp|27 col 33| 错误: 从类型‘T1’到类型‘T2’的转换无效
#include <vector> #include<stdio.h> #include <string.h> #include<iostream> #include <string> using namespace std; class T1{ public: int a; double b; }; class T2{ public: T2(T1& t1) { a = t1.a; b = t1.b; } int a; double b; }; int main() { T1 t1; t1.a = 2, t1.b = 1.5; T2 t2 = reinterpret_cast<T2>(t1); return 0; }
相关文章推荐
- C++在类之间调用static_cast转换时,需要复制构造函数
- 标准c++的类型转换符之间的区别(static_cast,dynamic_cast,const_cast,reinterpret_cast)(转载)
- 使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)
- C++的类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast
- C++标准转换运算符static_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结
- C++中类型转换—static_cast,dynamic_cast,const_cast
- c++四种转换 static_cast,const_cast,dynamic_cast,reinterpret_cast
- C++学习 C++类型转换static_cast, dynamic_cast, const_cast探讨
- C++类型中的转换--static_cast 和 reinterpret_cast
- C++类型转换 static_cast, dynamic_cast, reinterpret_cast, const_cast
- 谈谈C++的类型转换符 static_cast、dynamic_cast、const_cast、reinterpret_cast
- C++四种强制转换 static_cast , dynamic_cast , const_cast , reinterpret_cast
- C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- C++标准转换运算符static_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 关于c++ 强制转换类型运算符 static_cast、dynamic_cast、reinterpret_和const_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)