C++简单的面向对象中进行一个函数封装的举例

封装:成员变量私有化,提供公共的getter和setter给外界去访问成员变量

比如说

#include<iostream>

using namespace std;

int main() {

struct Person {

/*private:*/

int m_age;

//public:

//void setAge( int age) {

//if (age <= 0) {

//m_age = 1;

//}

//else

//{

//m_age = age;

//}

//

//}

//int getAge() {

//return m_age;

//}

};

Person person;

person.m_age = -6;

//person.m_age = 22;

//int age = -20;

//person.setAge(age);

//cout << "age= " << person.getAge() << endl;

cout << "age= " << person.m_age << endl;

return 0;

}

这段例子中,此时成员变量是公开的,阻止不了别人给它赋一些了乱七八糟的值,这里举得例子是年龄,age应>=0这是-6就不合理了。

我们可以用private将成员变量私有化外界int main()中就不可以直接更改age的值,

可以转而提供一个公共的set方法get方法

将外面传进来的参数age进行过滤,再赋值给m_age即可从而实现一些过滤操作

#include<iostream>

using namespace std;

int main() {

struct Person {

private:

int m_age;

public:

void setAge(int age) {

if (age <= 0) {

m_age = 1;

}

else

{

m_age = age;

}

}

int getAge() {

return m_age;

}

};

Person person;

//person.m_age = 22;

int age = -20;

person.setAge(age);

cout << "age= " << person.getAge() << endl;

return 0;

}

即调用set方法来使用变量,调用get方法来访问变量,达到函数封装效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值