类总结 集锦

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对象
因此,只有在通过基类指针或引用间接窒息那个派生类子类型时,多态性才起作用!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值