C++类和对象的学习【part1:封装】

C++类和对象的学习【part1:封装】

属性和行为作为整体

从这里开始,我们将探讨类这个主题,类的三要素是封装-继承-多态。
我们先从封装看起。
参考下列代码:

// arrayone.cpp -- small arrays of integers
#include <iostream>

using namespace std;

const double PI = 3.14;

//要设计一个类
class Circle
{
    
    
    //访问权限
    //公共权限
public:
    //属性(通常为变量)
    int radius;

    //行为(通常为函数)
    //获取圆的周长
    double calculate()
    {
    
    
        return 2 * PI * radius;
    }
};

int main()
{
    
    
    //通过圆类创建具体对象(实例化)
    Circle c1;
    //为圆对象属性赋值
    c1.radius = 10;

    cout << "圆的周长为" << c1.calculate() << endl;

    system("pause");
    return 0;
}

这里我们创建了一个圆类,并根据其半径计算了其周长,代码很简单,不再赘述。
需要关注的专业术语:

  • 类中的属性和行为,统一称为成员
  • 属性也称为成员属性 成员变量
  • 行为也称为成员函数 成员方法

为什么类中成员喜欢加一个m_或者以_结尾?
为了防止出现如下情况:

name = name;

这里m是member的首字母。
为什么定义类的时候先写行为,后写属性。
或者说为什么定义类的时候,不用先定义变量,有待解决!

访问权限

// arrayone.cpp -- small arrays of integers
#include <iostream>

using namespace std;

const double PI = 3.14;

//访问权限
//公共public 保护protected 私有private
//public    类内外均可访问
//protected 仅类内可以访问(子可访问父亲)
//private   仅类内可以访问(子不可访问父亲)
class Person 
{
    
    
    public:
        string name_;
    protected:
        string car_;
    private:
        int password_;
    public:
        void func()
        {
    
    
            name_ = "Libo";
            car_ = "benz";
            password_ = 123;
        }

};


int main()
{
    
    
    Person p1;
    p1.name_ = "Jerry";
    // p1.car_ = "new";
    // p1.password_ = 1234;

    p1.func();

    system("pause");
    return 0;
}
  • 公共权限public: 类内外均可访问
  • 保护权限protected: 仅类内可以访问(子可访问父亲)
  • 私有权限private: 仅类内可以访问(子不可访问父亲)

struct和class的区别

  • struct 默认公共权限 public
  • class 默认私有权限 private

猜你喜欢

转载自blog.csdn.net/qq_41883714/article/details/109453141