1 / 4
文档名称:

类[DOC可编辑].docx

格式:docx   页数:4
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

类[DOC可编辑].docx

上传人:yixingmaob 2015/11/6 文件大小:0 KB

下载得到文件列表

类[DOC可编辑].docx

相关文档

文档介绍

文档介绍:1. 除了静态 static 数据成员外,数据成员不能在类体中被显式地初始化。
 
例如:
class First {
int memi = 0; // 错误
double memd = ; // 错误
};
类的数据成员通过类的构造函数进行初始化。
 
2. 我们可以声明一个类但是并不定义它.
 
例如:
class Screen; // Screen 类的声明
这个声明向程序引入了一个名字 Screen,指示 Screen为一个类类型。
     但是我们只能以有限的方式使用已经被声明但还没有被定义的类类型,如果没有定义类那么我们就不能定义这类类型的对象。因为类类型的大小不知道,编译器不知道为这种类类型的对象预留多少存储空间。
     但是,我们可以声明指向该类类型的指针或引用,允许指针和引用是因为它们都有固定的大小, 这与它们指向的对象的大小无关,但是,因为该类的大小和类成员都是未知的,所以要等到完全定义了该类,我们才能将解引用操作符( * )应用在这样的指针上,或者使用指针或引用来指向某一个类成员。
     只有已经看到了一个类的定义,我们才能把一个数据成员声明成该类的对象。在程序文本中还没有看到该类定义的地方,数据成员只能是该类类型的指针或引用。例如下面是类StackScreen的定义,它有一个数据成员是指向 Screen类的指针,这里 Screen只有声明没有定义: 
class Screen; // 声明
class StackScreen {
int topStack;
 
// ok: 指向一个 Screen 对象
Screen *stack;
void (*handler)();
};
     因为只有当一个类的类体已经完整时,它才被视为已经被定义,所以一个类不能有自身类型的数据成员,但是,当一个类的类头被看到时,它就被视为已经被声明了,所以一个类可以用指向自身类型的指针或引用作为数据成员。例如:
class LinkScreen {
  LinkScreen iLinkScreen; // 错误:一个类不能有自身类型的数据成员
LinkScreen *next;
LinkScreen *prev;
};
 
3.  inline和非inline成员函数
 
在类体中定义的成员函数默认是inline函数,可以显示的加上inline;
通常,在类体外定义的成员函数不是 inline 的,但是,这样的函数也可以被声明为 inline函数。可以通过显式地在类体中出现的函数声明上使用关键字 inline 或者通过在类体外出现的函数定义上显式使用关键字 inline,或者两者都用。
 
4. const 成员函数
 
     通常,程序中任何试图修改 const 对象的动作都会被标记为编译错误 
const char blank = ' ';
blank = '\n'; // 错误
     但是,程序通常不直接修改类对象,又是在必须修改类的对象时,才调用公有成员函数集来完成,为尊重类对象的常量性,编译器必须区分不安全与安全的成员函(即区分试图修改类对象与不试图修改类对象的函数),例如: 
const Scree