读书人

种的继承与变量覆盖

发布时间: 2013-09-11 16:26:28 作者: rapoo

类的继承与变量覆盖
下面的输出按理说应该是 12,但为什么不是??

#include <iostream>
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
}
继承 类 class
[解决办法]
vs2010运行你的程序
输出:
12
不明白你怎么输出那么奇怪的数字,变量在默认构造函数已经初始化了。
[解决办法]
我在windows下用codeblocks编译报错:
error: 'printf' was not declared in this scope
[解决办法]

楼主包含的iostream为何还要用printf?或者直接包含stdio
[解决办法]
看代码逻辑上是输出1和2的,
这边没环境,运行不了!
可以重新编译下再执行试试

读书人网 >C++

热点推荐