c++ Primer 第七章不熟悉知识点总结

1、在类中,编译器分两步处理类,首先编译成员的申明,然后才轮到成员的函数体,所以我们可以随意的使用类中的成员,而不用在乎他在类中位置。

2、构造函数就是控制其对象初始化的过程,构造函数可以像重载函数一样定义多个。构造函数不能被const。

C++中的结构体与类的区别: (1)class中默认的成员访问权限是private的,而struct中则是public的。 (2)class继承默认是private继承,而从struct继承默认是public继承。

结构体的作用

  • 在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。
  • 结构体在函数中的作用不是简便,最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

3、

1 struct sale()
2 {
3   sale(const string &s, unsigned n,  double p):bookNO(s),units(n,revenue(p*n))
4 {
5 } // 构造函数,
6 string bookNO = "";
7 unsigned units = 0;
8 double  revenue = 0.0;
9 }

这里函数名和函数体之间的:后面的作用是初始化,相当于隐式的初始化了下面的变量。

4、对于类的静态成员,因为不属于任何一个对象,所以初始化并不在构造函数中,所以需要我们自动的去初始化静态成员。我们在类的外面初始化静态成员,且只能初始化一次。

类的静态成员可以用于某些场景而普通成员不可以

1     static Accout temp1;   //正确,静态成员可以是不完全类
2     Accout *temp2;           //正确,指针成员可以是不完全类
3     Accout temp3;          //错误,数据成员必须是完全类型
1     static double initRate;
2     double interest;
3     void  verify1(double = initRate);   //正确,因为静态成员可以作为默认实参
4     void  verify2(double = interest);   //错误,因为非静态成员不能作为默认实参
原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/11619565.html