// 封装:成员变量私有化,提供公共的getter和seter给外界去访问成员变量
struct Person{
private:
int m_age;
public:
void setAge(int age){
if(age < 0)return;
this->m_age = age;
}
int getAge(){
return this->m_age;
}
};
int main(){
Person person;
person.setAge(20);
cout << person.m_age << endl;
}
// 思考:可以利用this.m_age来访问成员变量么?答案:不可以,C++中如果是用对象访问成员变量用点语法,如果是用指针指向成员变量都要通过->箭头访问.
// 利用汇编看struct与class定义的类从汇编的角度看,没什么区别:
struct Person {
int m_age;
void run(){
cout << "run()" << endl;
}
};
int main(){
Person person;
person.m_age = 10;
person.run();
// 汇编语言为
mov dword ptr [ebp-0Ch],0Ah
lea ecx,[ebp-0Ch] //lea是取地址,将person对象的地址取出来,然后调用run()函数,为什么要将person对象的地址取出来,因为要将person对象的地址传给调用的函数run()中
call 0015135C
return 0;
}
C++封装
最新推荐文章于 2022-07-31 12:31:32 发布