2 wahahahf wahahahf 于 2013.11.02 22:01 提问

为什么第一个输出是a:1????

#include "StdAfx.h"
#include
#include

using namespace std;
class A{
public:
int a;
A(){ a = 1;}
void printA(){
cout << "a:" << a << endl;
}
};

class B: public A{
public:
int a;
B(){a =2;}
};

int main()
{
B b;
b.printA();
cout << b.a << endl;
return 0;
}

1个回答

u012555162
u012555162   2013.11.03 21:37

这是因为classA有自己默认的值,当调用b.printA()时,此时a的值已经为1,接着输出a:1.

wahahahf
wahahahf 即使a没有默认的赋值,输出也不会是2,而是一个随机数。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!