现在的位置: 首页 > 综合 > 正文

第十二章 类

2013年10月01日 ⁄ 综合 ⁄ 共 617字 ⁄ 字号 评论关闭

12.1 类的定义和声明

class Screen;//这个是向前声明

当只有向前声明出现过,数据成员只能是该类型的引用或者指针

12.2 隐含的this指针

class Screen

{

         mutable
size_t access_ctr;//mutable
使得该变量可以在const函数中被修改

};

12.4 构造函数

1)  const对象的初始化也要在普通的构造函数中进行,但是static const 则在类定义体中初始化

 

2)  初始化列表

初始化列表存在的必要性: 为没有默认构造函数的类类型成员初始化,const,引用类型的成员初始化

 

初始化列表初始化的顺序是变量声明的顺序.

 

3) 隐式类类型转换

例子 :

因为string类中有用char*初始化的构造函数,所以当出现这种情况的时候

class A{

void function a(string str);

};

调用的时候

a(“bbb”);// “bbb”将隐式地被转换为string(“bbb”);

 

抑制由构造函数定义的隐式转换

class A{

explicit bool function a(string str);//explicit只用在构造函数上

};

 

4) 类成员的显式初始化

12.5 友元

class A{

friend class B;

};

 

class A{

friend bool B::function();

};

 

友元标识的位置可以在类中的任意位置

12.6  static

类中static 函数没有this指针,可用做默认实参

 

抱歉!评论已关闭.