类的继承与变量覆盖
下面的输出按理说应该是 12,但为什么不是??
#include <iostream>继承 类 class
using namespace std;
class A
{
public:
int _a;
A()
{
_a = 1;
}
void print()
{
printf( "%d", _a );
}
};
class B : public A
{
public:
int _a;
B()
{
_a = 2;
}
};
int main()
{
B b;
b.print(); // 18712700 ??
printf( "%d ", b._a ); // -858993460
}
[解决办法]
vs2010运行你的程序
输出:
12
不明白你怎么输出那么奇怪的数字,变量在默认构造函数已经初始化了。
[解决办法]
我在windows下用codeblocks编译报错:
error: 'printf' was not declared in this scope
[解决办法]
楼主包含的iostream为何还要用printf?或者直接包含stdio
[解决办法]
看代码逻辑上是输出1和2的,
这边没环境,运行不了!
可以重新编译下再执行试试