首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Effective C++:规定27:尽量少做动作的过渡

    (3)reinterpret_castT>(expression):试图运行低级转型(比如将一个指向整数变量的指针转换为整数),实际动作及结果可能与编译器相关,因而减少了可移植性。...(4)static_castT>(expression):隐式转换。注意尽管能够使非const类型转换为const。但反之不能(这个仅仅能由const_cast来完毕)。...{...}; class Derived : public Base{...}; Derived d; Base* pb = &d;//隐喻的将derived*转换成Base* 在这里表明:单一的对象可能拥有一个以上的地址...这里我们仅仅是建立一个base class指针指向一个derived class对象,但有时候上述的两个指针值并不同样。...::vectorstd::tr1::shared_ptr> VPW; VPW winPtrs; for(VPW::iterator iter = winPtrs.begin();

    42720

    C++关键知识点梳理

    左值引用&右值引用左值引用:常规引用,可支持取地址运算符&获取内存地址;右值引用:右值是临时对象、字面量等表达式,右值引用解决临时对象或函数返回值给左值对象时的深度拷贝;std::move:将输入的左值或右值转换为右值引用类型的临终值...;避免额外的深度拷贝;templateT>typename std::remove_referenceT>::type&& move(T&& a) noexcept{ return...static_caststd::remove_referenceT>::type&&>(a);}std::forward:如果函数forward的实参的数据类型是左值引用,则返回类型为左值引用...( typename std::remove_referenceT>::type& t ){ return static_castT&&>(t);}templateT > T&&...forward( typename std::remove_referenceT>::type&& t ){ return static_castT&&>(t);}const定义:不被改变的值使用

    1.4K30
    领券