0
点赞
收藏
分享

微信扫一扫

C++学习记录之2.类和对象(1)——封装

2.类和对象

C++面向对象的三大特性为:封装、继承、多态。

C++认为万事万物都是对象,对象有属性和行为。

具有相同性质的对象可以抽象为类。

2.1封装

2.1.1封装的意义

①设计类的时候,将属性和行为作为一个整体,表现生活中的事物。

②将属性和行为加以权限控制

语法:

class 类名
{
访问权限:属性/行为
};

2.1.2访问权限

访问权限有三种:

1.public     公共权限//类内可以访问,类外可以访问
2.protected 保护权限//类内可以访问,内外不可以访问
3.private 私有权限//类内可以访问,类外不可以访问

2.1.3struct和class的区别

在C++中struct和class的唯一区别就在于默认的访问权限不同

struct的默认访问权限为公共,class的默认访问权限为私有

代码演示:

#include<iostream>
using namespace std;
#include<string.h>
struct stu
{
string _name;
};//利用struct创建类
class teacher
{
string _name;
};//利用class创建类
int main()
{
stu s;
s._name = "李华";
cout << s._name << endl;

teacher t;
t._name = "王红";
cout << t._name << endl;

return 0;
}

C++学习记录之2.类和对象(1)——封装_C++成员属性设置

2.1.4成员属性设置为私有

优点1:将所有成员属性设置为私有,读写权限可以自己控制。

优点2:对于写权限,可以检测数据的有效性。

代码演示:

①自己控制读写权限

#include<iostream>
using namespace std;
class teacher
{
public:
//设置公共接口
//姓名设置为可读可写
//设置姓名
void setname(string Name)
{
_name = Name;

}
//获取姓名
string getname()
{
return _name;
}
//年龄设置为只可写
//设置年龄
void setage(int Age)
{
_age = Age;
}
private:
//成员属性设置为私有
string _name;
int _age;
};
int main()
{
teacher t;
//利用公共接口访问变量
t.setname("李华");
cout << t.getname() << endl;
return 0;
}

C++学习记录之2.类和对象(1)——封装_C++封装_02

②检测数据的有效性

#include<iostream>
using namespace std;
class teacher
{
public:
//设置公共接口
//年龄设置为只可写
//设置年龄,并对输入数据有效性检测
void setage(int Age)
{
if (Age < 0)
{
cout << "年龄信息输入有误,自动为您设置为-1岁" << endl;
_age = Age;
}
else
_age = Age;
}
private:
//成员属性设置为私有
int _age;
};
int main()
{
teacher t;
t.setage(-1);
return 0;
}

输入不规范数据验证

C++学习记录之2.类和对象(1)——封装_C++成员属性设置_03

举报

相关推荐

0 条评论