-
C++语言的封装
- 将属性和行为作为一个整体,来表示生活中具体的事物
- 有访问权限
- class 和struct唯一区别 默认权限不同
- class默认是private
- struct 默认是public
- public 是类内类外都可以访问到
- protected 类内可以,类外不可以(子类可以)
- private 类内可以,类外不可以
一个类默认创建:默认构造、析构、拷贝构造、operator=赋值运算符 进行简单的值传递
建议将成员属性设置为私有:
class Person
{
public:
//设置年龄
void setAge(int age)
{
if (age < 0 || age > 100)
{
cout << "你这个老妖精" << endl;
return;
}
m_Age = age;
}
//获取年龄 读权限
int getAge()
{
return m_Age;
}
//读姓名
string getName()
{
return m_Name;
}
//写姓名
void setName(string name)
{
m_Name = name;
}
//只写的情人
void setLover(string lover)
{
m_lover = lover;
}
private: //类外不可访问,类内可以访问
int m_Age = 0; //年龄 读写
string m_Name; //公有权限 读写
string m_lover; //情人 只写
};
类的构造函数、析构函数
class Person
{
public:
//构造函数写法
//与类名相同,没有返回值 ,不写void,可以发生重载 (可以有参数)
//构造函数由编译器自动调用,而不是手动,而且只会调用一次
Person()
{
cout << "构造函数调用" << endl;
}
Person(int a)
{
cout << "构造函数调用(int a)" << endl;
}
//析构函数写法
// 与类名相同 类名前面加一个符号 “~” ,也没有返回值 ,不写void, 不可以有参数(不能发生重载)
//自动调用,只会调用一次
~Person()
{
cout << "析构函数调用" << endl;
}
};