const_cast用法
const_cast
const_cast<> <>必须是指针或引用
const
std::shared_ptr去 const
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream> #include <memory>
struct A{ int x = 0; };
int main(){ const std::shared_ptr<const A> const_ptr(new A()); std::cout << typeid(const_ptr).name() << std::endl;
std::shared_ptr<const A> ptr = const_cast<std::shared_ptr<const A> &>(const_ptr);
A &a = const_cast<A &>(*const_ptr); a.x = 100;
std::cout << "a.x = " << a.x << std::endl; std::cout << "const_ptr->x = " << const_ptr->x << std::endl; return 0; }
|