accelerated cpp chapter 9 定义新类型

1 供他人使用的代码应该包含最少数量的必要声明。因此,在你提供的cpp头文件中应该避免使用using namespace std之类的语句,以防止用户在包含你的头文件时,不得不包含这个声明。类似这样的语句应该让用户在自己实现的源文件 中按需要自己决定使用。所以,当你的头文件声明中需要使用如std名字空间中元素时,应该使用完整限定名,如std::vectro.

 

2 在一个类成员 函数中,可用不带前缀的::func() 方式来调用全局函数func()。

 

3 在全局函数中,传递的常量对象通过在函数定义和声明的参数列表中加const来声明。

   而对类成员函数,每个函数都有一个指向自身对象的隐藏参数this。该函数对类成员变量和函数的引用都是通过该参数完成的。如果需要限定该参数为常量,即该成员函数不能修改类成员变量,可以将该函数声明额为const函数。

 

4 如果函数会改变对象的状态,那么应该把该函数作为该对象的成员函数来实现。

 

5 c++数据成员的初始化方式

   如果对象是一个局部变量 ,则该对象将会被缺省初始化;否则,进行数值初始化;

  (1)如果对象是自定义类型,且该类型定义了一个或多个构造函数,则将使用合适的构造函数控制对该类对象的初始化;

  (2)如果对象是内部类型,则数值初始化方式会把它设为0,缺省初始化则会给它一个未定义的值;

  (3)如果对象是一个未定义构造函数的自定义类型(即之后缺省构造函数),则对这个对象的数值和缺省初始化操作将会应用到它的每一个数据成员,且这个过程是递归的。

 

6 对象的创建及初始化方式

   (1)分配内存;

   (2)执行构造函数初始化列表对对象进行初始化;

   (3)执行构造函数的函数体。

 

7 对象的构造函数应当初始化所有它的数据成员,尤其是内部类型的成员。否则,在类被实例化为局部对象时,其内部类型的数据成员会被缺省初始化为垃圾数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值