Essential C++ 学习笔记(四)

4. 基于对象的编程风格

4.1 如何实现一个class

1 前置声明使我们得以进行类指针(class pointer)的定义,或以此class作为数据类型.

2 private members 只能在member function或是class friend内被取用.

3 如果要在class 主体内定义, 这个member function会自动被视为inline函数.


4.2 什么是Constructors和Destructors

1 每个class都必须记住他自己的长度和起始位置. 但起始位置不得为零或负值.

2 constructor 不应指定返回型别,亦不需任何返回值. 它可以被重载(overloaded).

最简单的是所谓的default constructor, 它不需要任何arguments. 这意味着: 第一, 它不接受任何参数; 第二,它为每个参数提供了默认值

3 destructor 绝对不会有返回值, 也绝不可能被重载.

4 destructor 并非绝对必要.

5 当我们设计class时, 必须确认, 在此class之上进行"成员逐一初始化的行为模式是否适当? 如果不是, 我们就必须另行定义copy constructor.


4.3 何为mutable和const

1 编译器会检查每个声明为const的member function 看看他们是否真的没有改动class object的内容.

2 member functions 可以根据const 与否而重载.

3 只要将变量标识为mutable, 我们就可以宣称, 对变量所做的改变并不会破坏class object的常数性.


4.4 什么是this指针

欲以一个对象复制出另一个对象,先确定两个对象是否相同是个好习惯.


4.5 Static Class Member

1 const static int 之类的data members, 可以在声明时为他们明白指定初值.

2 static member function 便可以在没有任何对象初始化的情况下被调用. 当在class主体外部进行member function的定义是, 不需要重复加上关键词

static (同样适用于static data member).


4.6 打造一个 Iterator Class

1 运算符函数不需要指定名称, 只需在运算符符号之前加上关键词operator.

2 运算符重载的规则


4.7 合作关系必须建立在友谊的基础上

1 如果希望将数个重载函数声明为某个class的friend, 必须明白的为每个函数加上关键词friend.

2 也可以令class A 与 class B 建立friend关系, 借此让A 所有的member functions 都成为class B 的friend.


4.11 指针:指向Class Member Function

maximal munch原则

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值