标签:int 移除 express pre 隐式 体系 out 指针类型 cas
1.旧式转型
2.C++新式转型
将对象的常量性移除。
const int constant=20; const int *p=&constant; int *value=const_cast<int *>(p); *value=10; cout<<constant<<" "<<*p<<" "<<*value<<endl<<&constant<<" "<<p<<" "<<value<<endl;//20,10,10,但是地址一样,应该是编译器优化导致。
执行“安全向下转型”,决定某对象是否归属于继承体系中的某个类型。
classB { public: int m_iNum; virtual void foo(); }; classD:publicB { public: char* m_szName[100]; }; void func(B* pb) { D* pd1=static_cast<D*>(pb); D* pd2=dynamic_cast<D*>(pb); }
任意指针类型转换。
class A { ... }; class B { ... }; void f() { A* pa = new A; void* pv = reinterpret_cast<B*>(pa); // pv 现在指向了一个类型为B的对象,这可能是不安全的 ... }
强迫隐式转换。non-const->const,int->double,基类->派生类,无法将const->non-const
int i; float f = 166.71; i = static_cast<int>(f);//166
标签:int 移除 express pre 隐式 体系 out 指针类型 cas
原文地址:http://www.cnblogs.com/loki1412/p/7285047.html