class A{}; class B :public A{};
B b;
A a=b;
static_cast<A>(b);这句创建了临时对象
此时如果 : static_cast<A>(b) = 111;(比如说可以)
并没有改变b的实际值,改变的是临时对象的值,所以不会按照想法输出
实际上这句在VC下是错误的,因为临时变量是CONST的
但在DEV下是正确的,也许支持的不够好吧
本文探讨了C++中static_cast操作符的应用场景,特别是当它用于将派生类对象转换为基类对象时的行为。文章指出,在某些情况下,这种转换会创建一个临时对象,并解释了为何对这个临时对象的操作不会影响原始对象。
class A{}; class B :public A{};
B b;
A a=b;
static_cast<A>(b);这句创建了临时对象
此时如果 : static_cast<A>(b) = 111;(比如说可以)
并没有改变b的实际值,改变的是临时对象的值,所以不会按照想法输出
实际上这句在VC下是错误的,因为临时变量是CONST的
但在DEV下是正确的,也许支持的不够好吧
1146

被折叠的 条评论
为什么被折叠?