`
韩冬冬
  • 浏览: 13562 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

类总结 集锦

 
阅读更多
class Screen{
public:
void home(){_cursor = 0;}
private:
int _cursor;
}

虽然每个类对象都有自己的类数据成员拷贝。但是每个类成员函数的拷贝“只有一份”!
例如:
Screen myScreen, groupScreen;
myScreen.home();
groupScreen.home();
其中myScreen, groupScreen调用home()时,调用的是同一个函数home()!

 

对于“成员函数”而言,const类对象只能调用const成员函数,(一般const成员函数不能修改类对象的数据成员,但当类对象的数据成员中包含指针时,const成员函数可以修改此指针所指的内容,而指针本身没有改变)。
/*若要想const成员函数修改const类对象的数据成员,可以将数据成员声明为mutable(易变的)*/
const成员函数可以被相同参数表的非const成员函数重载:
例如:
class MyScreen{
public:
char get(int x, int y);
char get(int x, int y) const;
}
此时两个get为函数重载。
一个const类对象“从构造完成时到析构开始时刻”这段时间内被认为是const!

  

在类定义中用到的名字必须在使用前首先被声明,这个规则有两种例外的情况。
1、对于被用在inline成员函数定义中的名字
2、对于被用作缺省实参的名字
此两种情况都是“在类的完整域中”被解析,不分先后顺序!

 

类的设计中:
缺省的构造函数是必要的,因为在定义类数组时,需要缺省的构造函数!

 

构造函数调用的顺序:
1、基类构造函数
2、成员类对象构造函数
3、派生类构造函数

 

基类为:Query
派生类为:NameQuery
Query query;
NameQuery nq( "lila" );
query = nq;//nq被切割成一个Query对象
因此,只有在通过基类指针或引用间接窒息那个派生类子类型时,多态性才起作用!

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics