天天看点

C++ 核心 4.1 类的封装4 类和对象

4 类和对象

面向对象三大特性:封装、继承、多态

万物皆对象。对象= 属性+行为

类是抽象的对象。 比如路上有很多(具体的)车,但抽象出来都属于车。

定义类的语法:

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

4.1 封装

封装意义:

  • 结合属性和行为,符合现实。
  • 权限控制

圆类

const double PI 3.1415;
class Circle
{  
public:  //访问权限
    //属性
    int m_r; //半径

    //行为
    double cal_circumference()
    {
        return 2 * PI * m_r;
    }
};

//使用类
int main(){
    Circle c1;
    c1.m_r = 10;
    cout << c1.cal_circumference() << endl;
}
           

4.1.1 权限控制

权限控制是封装的另一个意义。

访问权限有三种

public 公开

protected 保护 (子类可以访问父类的保护内容,具体看后面的继承)

private 私有 (子类不可以访问父类的私有内容)

只有公开的成员才能类外访问。

例:

class Person
{
public :
    string m_Name;

protected:
    string m_Car;

private:
    int m_Password;

public:
    void func()
    {
        m_Name = "张三";
        m_Car = "拖拉机";
        m_Password = 123456;
    }
};


int main() {
    Person p;
    p.m_Name = "李四";
    p.m_Car = "五菱"// 错误,类外不能访问protected和private成员
} 
           

4.1.2 struct 和 class

struct 成员默认是public

class 成员默认是private

4.1.3 成员属性设置为私有

class Person
{
public:
    void set_name(string name){
        m_Name = name;
    } 
    void get_name(){
        return m_Name;
    }
private:
    string m_Name;
}
           

继续阅读