C++面向对象三大特性:封装、继承、多态,万物皆对象,对象有自己的属性和行为
比如人、手机、电脑都是对象,人的属性可以有年龄、身高等等,行为有吃喝拉撒等。
将具有相同性质的对象抽象成类,人——人类,车——车类。
封装
意义
- 将类的属性和行为封装在一起,方便表现事物
- 权限控制属性和行为
设计一个类:人Person
class Person{
//公共权限
public:
//属性,姓名、年龄、身高、体重
string m_name;
int m_age;
double m_height;
double m_weight;
//行为,吃喝拉撒
void eat(){
cout<<"eat a meal"<<endl;
}
void showName(){
cout<<"name: "<<m_name<<endl;
}
void setName(string name){
m_name = name;
}
};
int main(){
//创建对象:实例化
Person p;
p.m_age = 22;
p.setName("Una");
cout<<p.showName()<<endl<<p.eat()<<endl;
}
-----------------------------------------
name: Una
eat a meal
访问权限:
- 公共权限public:类内类外均可访问
- 保护权限protected:类内访问,子类可访问父类保护内容
- 私有访问private:类内访问,子类不可访问父类私有内容
class Person{
public:
string m_name;
void setInf(){
m_name = "Una"; //类内可访问
m_salary = 10000; //类内可访问
m_password = "344456"; //类内可访问
}
protected:
double m_salary;
private:
string m_password;
};
int main(){
Person p;
p.setInf();
p.m_name = "Vae"; //succeed
p.m_salary = 33333; //error:不可访问
p.m_password = "343434"; //error:不可访问
}