关于c++中类的公有与私有数据的疑惑

img


如题。该类number中前后分别定义了public与private。
我的疑惑是:1.为什么这里要定义私有数据?
2 .公与私之间有什么明显的区分从而需要分开定义吗?

1,方便实现类中各个方法,如果都是public如下:

class XXX{
    //....构造与析构
    
    int function1(int A,int B)
    {
        //函数内部使用传入的A和B进行某计算,比如
        int C=A+B;
        return C;
    }
    int function2(int A,int B,int resultFromFunc1)
    {
        //函数内部使用A,B,以及function1的结果resultFromFunc1进行某计算,比如
        int D=A+B+resultFromFunc1;
        return D;
    }
};

如果这个类里有很多函数,那每次都要传参,但如果有private就方便很多:

class XXX{
    //.....构造与析构
    
    void function1(int A,int B)
    {
        a=A;
        b=B;
        c=A+B;
    }
    int function2()
    {
        int D=a+b+c;
        return D;
    }
private:
    int a;
    int b;
    int c;
};

参数不用每次传来传去。方便编码而且更安全。
2,根据自己需求来,有的不需要给对象调用的变量或函数就设置为private即可。

  • 这篇博客: C++第四章课后习题中的 4-1解释public和private的作用,公有类型成员与私有类型成员有哪些区别? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 解:
    public用于声明共有类型,private用于声明私有类型。public提供对外的接口,private声明的成员只能类内使用,外部不能调用,实现了对外的隐蔽。