我有这段代码(来自考试的问题),代码中有很多错误,这是代码:
class A
{
int z;
static int y;
public:
A() {(*this).incrementY();}
int x () { y=y+2; return z;}
static int getY(){ return z;}
void incrementY() {y++}
};
class B: A
{
public:
B (): A() {(*this).incrementY();};
};
class C : public B
{
public:
C(): B() {(*this).incrementY;() }
};
int main()
{
A::x();
A a;
a.getY();
A::getY();
B b;
C c;
C::getY();
b.x();
}
有一个私有继承。这意味着B中的所有方法和变量对于从B继承的任何类都是私有的?
最佳答案
您是正确的(尽管实际上这意味着所有A的方法都无法访问)。
但是,还有其他一些问题:
A::x() // will not work as x is not static.
a.getY() // will not work as getY() is static.
C::getY() // Cannot access getY()
关于c++ - 代码中的C++错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/630946/