1. 题目
1.1 原题
#include<iostream>
using namespace std;
class A
{
public:
A() { a = 5; }
virtual void fun(x) { a += x; }
void fun2(x) { a -= x; }
int a;
};
class B: public A
{
B() { a = 10; }
void fun(x) { a -= x; }
virtual fun2(int x) { a += x;}
}
int main()
{
A* p = new B;
p->fun(1);
cout << p->a << endl;
p->fun2(3);
cout << p->a << endl;
return 0;
}
问: 输出是什么?
1.2 扩展1
如果B类里也有成员变量int a,输出为多少?
class B: public A
{
B() { a = 10; }
void fun(x) { a -= x; }
virtual fun2(int x) { a += x;}
int a;
}
1.3 扩展2
如何访问A类和B类的成员变量a?