-1

我在 IKM 测试中看到类似以下内容,代码位于单个文件中:

class A{

public:
    int a;
    A();

protected:
    int x;

private:
    int y;

};

void ARandomFunction(){
    //Implementation
}

ARandomFunction() 可以访问 A 类的哪些变量?一般来说,如果声明都在同一个文件中,可以访问什么?

4

3 回答 3

1

这些变量将是每个实例(非静态成员变量),因此您首先需要创建一个对象来访问它们。只有public成员可以从独立函数访问,除非该函数声明friend为该类,在这种情况下,所有成员都可以访问。

也就是说,它们是否在同一个文件中并不重要。一旦类定义在函数实现的位置可见,就可以访问成员。

于 2013-06-05T13:29:36.340 回答
0

在同一个文件中没有任何改变,您的函数只能a按原样访问,public并且您的函数不是A(对于private成员)的成员,也不是它的子类(对于protected成员)。

于 2013-06-05T13:28:37.757 回答
0

据我所知,使用上面的示例 ARandomFUnction 可以访问公共变量和函数,而不管继承如何。仅当 ARandomFunction 包含在继承自 A 类或其成员的类中时,才能访问受保护的变量。私有变量和方法只能从同一类访问。

于 2013-06-05T13:30:14.503 回答