类的使用——四

类的简单说明
成员变量和成员函数分开存储。
空对象大小为1,这一字节用于区分对象在内存上的位置;但是,如果非空,这一字节就不加了;
对象的成员函数和成员变量分开存储;
非静态成员函数不属于对象;

this指针
this指针指向被调用的成员函数的对象,this指针指向对象本身。每一个非静态成员函数隐含this指针。
class per {
public:
int age;
per(int age) {
this->age = age;
}
per& addage(per& p) {
this->age += p.age;
return *this;//返回对象本身
}
};

int main(){
per a1(10);
per a2(a1);
//链式编程思想
a2.addage(a1).addage(a1);
cout<<a2.age<<endl;
return 0;
}
这段代码的结果是:30
空指针访问成员函数
class per {
public:
int age;
void getname() {
cout << “how are you” << endl;
}
int getage(int age) {
this->age = age;
cout << this->age << endl;
return this->age;
}

};
int main(){
per* p = NULL;
p->getname();
p->getage(10);//执行到这,程序会崩溃
return 0;
}
原因是:p是一个空指针,而类中的this不是,this指向对象的。

const修饰成员函数
常函数
常函数不可以修改成员属性;
成员属性声明时,加关键字mutable后,常函数可以修改;
常对象
常对象只能调用常函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值