tppabs到底是什么东西?对代码有何影响?如何清除tppabs标签

因为C++实在是过于复杂了,时不时都会碰见一些晦涩的细节,因此特意发个帖子,留好位置,随时添加


Item 1    前置声明

当不需要class A的完整定义而只需要其名称时,可以通过前置声明来避免包含class A对应的头文件,这样可以减少编译依赖关系


Item 2   using关键字

     1.谨慎执行将整个名子空间引入的操作
     2.不要在头文件中使用using
     3.不要在"#include"指令之前使用using

Item 3 函数指针

    函数指针的传统用途是实现回调机制;

    函数指针指向inline函数是合法的;然而通过函数指针调用inline函数,则不会进行函数展开,因为编译器通常无法在编译期确定函数指针究竟指向哪个函数

    类的非静态成员函数的地址不是一个指针,函数指针不能指向一个非静态成员函数,这种情况需要使用"类成员指针"
 
Item 4 类成员指针

    "类成员的指针"这个术语不是很合适,因为它既不包含地址,行为也不像指针.

    "类成员指针"中包含的并不是地址,而是类成员在对象中的偏移量

    获取非静态成员函数的地址时,得到的不是一个地址,而是一个指向成员函数的指针

    虚拟性是成员函数自身的性质,而不是指向它的指针所具备的性质;因此,一个指向成员函数的指针,通常不被实现为一个简单的函数指针;它的实现应该存储一些信息,例如指向的函数是否虚拟,如何在虚函数表中找到该函数的对应表项等等.

item 5 指针的比较

    C++中,一个对象可以有多个有效地址,因此指针比较
(==) 的实质并不是单纯的比较地址,而是在于确认对象同一性的问题

    对于存在派生关系的指针间的比较,编译器在幕后
结合 类型信息和原始地址,得出是否指向同一对象的判断

    在处理指向对象的指针或引用时,必须小心避免丢失类型信息:与void *的指针进行比较时,由于类型信息被抹去,只能按照原始地址来进行比较


Item 6  异常公理

    1.    异常是同步发生的,并且只能发生于函数调用的边界
    2.    对象的销毁"应该"是异常安全的:即析构函数、operator delete 和operator delete[]不应该抛出异常
    3.    swap操作不应该抛出异常


Item 7  编写异常安全函数的基本思路

    首先做任何可能抛出异常的事情(但不会改变对象的重要状态),然后使用不抛出异常的操作来改变对象状态作为结束。


Item 8 智能指针

    operator ->的非同寻常之处在于,当它被调用时,并不被消耗掉(consumed)


Item 9 可选的static

    对于类中的operator new、operator delete、operator new[] 和operator delete[],它们都是隐式静态成员函数,static关键字是可选的

Item 10 指针的隐式转换

    “what does the code ‘cout << p’ do when p is a volatile pointer?”

    结果为1,因为不存在针对volatile x *的operator << 重载版本,volatile X *被转换为了bool,值为true

[c++03]4.12 Boolean conversions [conv.bool]

1 An rvalue of arithmetic, unscoped enumeration, pointer, or pointer to member type can be converted to an rvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to false any other value is converted to true.
   
Item 11 常用缩写

    POD        Plain old Data
    POF        Plain old Function
    RVO        Retrun value optimization
    NRV       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值