C++ Primer Plus(十)——对象和类

  1. 采用OOP方法时,首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作,完成对接口的描述后,需要确定如何实现接口和数据存储,最后使用新的设计方案    创建出程序。

  2. 指定基本类型完成了三项工作:

    1. 决定数据对象需要的内存数量

    2. 决定如何解释内存中的位

    3. 决定可使用数据对象执行的操作和方法

  3. 类设计尽量将公有接口与实现细节分开,程序员可以使用私有成员函数来处理不属于公有接口的实现细节

  4. 不必在类声明中使用关键字private,因为这是类对象的默认访问控制;结构的默认访问类型是public。C++程序员通常使用类来实现类描述,而把结构限制为只表示纯粹的数据对象。

  5. 为了避免成员函数的参数与数据成员名称相同,一种常用的做法是在数据成员名中使用m_前缀,另一种常用的做法是使用后缀_。

  6. 什么时候调用构造函数?

    1. 如果创建的是静态存储类对象,则其析构函数将在程序结束时被自动调用。

    2. 如果创建的是自动存储类对象,则其析构函数在程序执行完代码块时被自动调用。

    3. 如果对象时通过new创建的,则他将驻留在栈内存或自由存储区中,当使用delete来释放内存时,其析构函数被自动调用。

  7. 将const关键字放在函数的括号后面,这样就能保证函数不会修改调用对象,这种函数被称为const成员函数。制药类方法不修改调用对象就应将其声明为const。

  8. 接受一个参数的构造函数允许使用赋值语法将对象初始化微一个值。

  9. 要创建类对象数组,则这个类必须有默认构造函数。初始化对象数组的方案是,首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时变量,然后将临时变量拷贝到相应元素中。

  10. 作用域为类的常量,不能声明为const 类型 常量名,而可以将其声明为enum{元素名=常量},这种方式声明枚举不会创建类数据成员,他只是一个符号名称;也可以使用关键字static,具体为  static const 类型 常量名  来定义常量。

  11. 相同作用域内的两个枚举很可能发生名称冲突,C++11提供了一种新枚举,在枚举关键字后加入class或struct,即可限定枚举的作用域为类内。

  12. 在有些情况下,常规枚举会自动转换为整型,但作用域内枚举不能隐式转为整型。

  13. 面向对象编程强调的是程序如何表示数据。使用OOP方法解决变成问题的第一步是根据它与程序间的接口来描述数据,从而指定如何使用数据,然后设计一个类来实现该接口。

转载于:https://my.oschina.net/shou1156226/blog/603401

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值