Chapter07
1、前缀注释:在源文件前面加上的标准注释,可以加入
文件/类名/;最后一次修改时间;原作者;文件/类的简单描述;未完成的特性;已知的bug等信息
2、变量命名约定:常见前缀
前缀 |
示例 |
解释 |
用法 |
m |
mData |
成员 member |
类中的数据成员 |
s |
sLookUpTable |
静态 static |
静态变量或数据成员,类变量 |
k |
kMaxLength |
常量 konstant |
指示一个常量值(也可全大写表示) |
f |
fCompleted |
标志 flag |
指示一个布尔值,表示一个yes no属性 |
n/m |
nLines/mLines |
数字 number |
作为一个计数器的数据成员 |
tmp |
tmpName |
临时 temporary |
一个临时变量 |
Chapter08
1、类默认访问权限:private 结构体默认访问权限:public 除此之外,二者相同
访问限定符 |
含义 |
何时使用 |
public |
任何代码都可以调用一个publc方法,或访问一个对象的public成员 |
希望客户使用的方法要置为public |
protected |
当前类及子类的任何方法都可以调用protected方法或访问protected成员 |
不希望客户调用的方法要置为protected 大多数数据成员都置为protected |
private |
只有此类的方法才可调用private方法及访问成员,子类不可以 |
只有希望限制子类对方法或成员的访问时,才使用private |
2、this指针:从对象的一个方法A中调用方法B,其中方法B的参数是对象指针
如方法A SetValue()中可调用方法B PrintValue( ClassType *p)
则可SetValue()
{ PrintValue(this) }
3、在栈上,只要声明对象就会调用构造函数 Student s1(10);
在堆上,可以声明一个指针,但不必立即调用
Student *ps;
ps=new Student(10); //此处才调用构造函数
不要尝试从类的一个构造函数调用另一个构造函数
4、默认构造函数:无参构造函数
例如SpreadsheetCell ::SpreadsheetCell()
{ mValue=0; mString =””;
}
在栈上使用默认构造函数时要去掉(),例如SpreadsheetCell myCell;//调用默认构造函数
myCell.setValue(5); //使用方法
在堆上使用,必须采用加()的方法,如SpreadsheetCell *myCell=new SpreadsheetCell();
注意:一旦自己写了构造函数(即使不是零参),编译器也不再生成默认构造函数
∴若构造函数只写了一个一参的,则SpreadsheetCell myCell;的形式会出错(不再生成无参)