Moe*_*oeb 5 c++ inheritance class redeclaration
你能解释为什么不允许这样做,
#include <stdio.h>
class B {
private:
int a;
public:
int a;
};
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
虽然这是?
#include <stdio.h>
class A {
public:
int a;
};
class B : public A{
private:
int a;
};
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我们有一个公钥和一个名为私有变量a在class B.
现在编辑!
Ara*_*raK 15
在这两种情况下,我们在B类中有一个名为a的公共变量和一个私有变量.
不,那不是真的.
在第一种情况下,在同一范围内不能有两个具有相同名称的标识符.在第二种情况下,B::a隐藏A::a和访问A::a您必须完全限定名称:
b.a = 10; // Error. You can't access a private member.
b.A::a = 10; // OK.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |