#include "iostream"
using namespace std;
class A {
public:
int _a;
A(){
_a = 1;
}
void print(){
cout << _a << endl;
}
};
class B : public A {
public:
B(){
_a=2;
}
};
int main(){
B b;
b.print();
printf("%d\n", b._a);
}
原题代码如上,答案曰输出1和2,其实应该是2和2才对。
除非改成
#include "iostream"
using namespace std;
class A {
public:
int _a;
A(){
_a = 1;
print();
}
void print(){
cout << _a << endl;
}
};
class B : public A {
public:
B(){
_a=2;
print();
}
};
int main(){
B b;
//b.print();
//printf("%d\n", b._a);
}
输出才是1和2。