#include<iostream>
#include<cstring>
using namespace std;
class Base
{
private:
int n;
public:
Base(int a)
{
n = a;
}
void show()
{
cout << "n=" << n << endl;
}
};
class A :public Base
{
private:
int m;
public:
A(int a, int b);//请实现该构造函数
void showa()
{
show();
cout << "m=" << m << endl;
}
};
int main()
{
A dobj(10, 20);
dobj.showa();
return 0;
}
1、自己在基类实现接口Setn(int a){n=a;},然后通过Base::Setn()访问
A(int a,int b)
{
Base::Setn(a);
m = b;
}
2、在Base中将类A声明为有元,
friend class A;
A(int a,int b)
{
n = a;
m = b;
}
然后在A中直接访问Base成员变量a。
3、总结:
(1)、不应该直接访问(如果你真需要访问,说明设计不好,设计好得绝对不需要),应该通过基类得公有函数或者protected函数访问
(2)、一种颇有争议的做法,使用friend: