c++访问函数参数私有变量

C++ access to function argument private variable

本文关键字:变量 参数 访问 函数 c++      更新时间:2023-10-16
 class Container{

private:
    int num_;
public:
    Container(): num_(1)
    {};
    void add(Container other){
        num_+=other.num_;
    }
    int get_num(){
        return num_;
    }
    void set_num(int n){
        num_=n;
    }

};

在上面的例子中other。Num_是可访问的…为什么?它不应该因为私有修饰符而不可访问吗?

一个类总是可以访问它自己的成员,不管它的成员变量有什么访问修饰符。
private:只有类可以访问
protected:只有派生类可以访问
public:所有人都可以访问
如果你写:

class Container{
private:
    int num_;
}

每个对象都可以访问同一类的任何其他对象的私有成员,因为在c++中访问修饰符是针对一个类的,而不是针对该类的每个对象。