为什么不能在下面的代码中访问A类函数
why cant i access class A function in following code?
我得到的obj.a::get();
的错误是类a是不可访问的,我知道obj.get()
会标记一个错误,但我想这应该工作,这里有什么问题?
class a {
int arg1;
public:
a(int i){
arg1 = i;
cout << "a() called" << endl;
}
void get() {
cout << "arg1=" << arg1 << endl;
}
};
class b {
int arg2;
public:
b(int j) {
arg2 = j;
cout << "b() called" << endl;
}
void get() {
cout << "arg2=" << arg2 << endl;
}
};
class c: private a, private b {
int arg3;
public:
c(int i, int j, int k): b(k), a(j) {
arg3 = k;
cout << "c() called" << endl;
}
};
int main() {
c obj(1, 2, 3);
obj.a::get();
}
c
使用private
派生自a
,因此c
的a
子对象不能从非c
成员函数的函数中访问。
相关文章:
- 从不同C++类的成员变量访问成员函数
- 无法访问基类函数 C++
- 从父类的向量访问子类函数,而无需向下转换
- 访问另一个类中的模板化嵌套类函数和对象
- 如何在构造函数中访问类变量以分配它们,而无需在C++中使用此指针
- 是否可以访问类数据成员并在析构函数中对它们执行操作?
- C++ 基类调用已删除或无法访问的函数
- 我相信这是 clang++ 中的一个错误,与访问类的公共成员函数有关
- 无法访问派生类函数内的基类的受保护数据成员
- Lambda 函数,用于调用有权访问类成员的成员函数
- C++友元函数无法访问类的公共函数
- 访问成员函数中参数的类成员
- 如何从 C++ 中的主函数访问类中的私有构造函数?
- 我设计了一个类并创建了基指针,但是当我尝试通过基指针访问派生函数时,它会出错
- C++ 从未在其中定义的函数访问类
- 尝试访问类向量中的函数,而不更改向量的私有状态
- 如何从另一个类正确访问类函数
- 如何访问类函数中的向量
- 使用:访问类函数
- 无法使用指针访问类函数