C++ Primer Plus简要笔记

  1. 类之于对象就像类型之于变量。也就是说,类定义描述的是数据格式及其用法,而对象则是数据规范创建的实体。类描述了一种数据类型的全部属性,对象是根据这些描述创建实体。

  2. 对类型名(如int)使用sizeof操作符时,应将名称放在括号中;但对变量名(如n_short)使用该操作符,括号是可选的:

sizeof(int)
sizeof n_short
  1. 如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。这意味着该变量的值将是它被创建之前,该内存单元保存的值。

  2. d.dddE+n指的是将小数点向右移n位,而d.dddE-n指的是将小数点向左移n位。

  3. 一定要在对指针应用解除引用操作符(*)之前,将指针初始化一个确定的、适当的地址。

  4. 只能使用delete来释放使用new分配的内存。不过,对空指针使用delete是安全的。
    不要使用delete释放同一个内存块两次。
    如果使用new []为数组分配内存,则应使用delete []来释放。
    如果使用new []为一个实体分配内存,则应使用delete来释放。

  5. 将指针变量加1后,其增加的值等于指向的类型占用的字节数。

  6. 如果数据类型本身不是指针,则可以将const数据或非const数据的地址赋给指向const的指针,但只能将非const数据的地址赋给非const指针。

  7. 必须在声明引用时进行初始化。

  8. 如果函数调用的参数不是左值或与相应的const引用参数的类型不匹配,则C++将创建类型正确的匿名变量,将函数调用的参数的值传递给该匿名变量,并让参数来引用该变量。

  9. 返回引用的函数实际上是被引用的变量的别名。

  10. 对于带参数列表的函数,必须从右向左添加默认值。

  11. 类和结构体的唯一区别是,结构体的默认访问类型是public,而类为private。

  12. 构造函数的参数表示的不是类成员,而是赋值给类成员的值。因此,参数名不能与类成员相同。

  13. 当按值传递和返回对象时,都将调用复制构造函数。

  14. 如果要在派生类中重新定义基类的方法,则将它设置为虚方法;否则,设置为非虚方法。

  15. 构造函数不能是虚函数。派生类不继承基类的构造函数,将类构造函数声明为虚函数没有意义。析构函数应当是虚函数,除非类不用作基类。给类定义一个虚拟析构函数并非错误,即使这个类不用做基类,只是一个效率方面的问题。通常应给基类提供一个虚拟析构函数,即使它并不需要析构函数。友元不能是虚函数,因为友元不是类成员。

  16. 关键字private和protected相似,在类外只能用共有成员来访问protected部分的类成员。private和protected之间的区别只有在基类派生的类中才会表现出来。派生类的成员可以直接访问基类的保护成员,但不能直接访问基类的私有成员。最好对类数据成员采用私有访问控制,不要使用保护访问控制;同时通过基类方法使派生类能够访问基类数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值