这是der继承自我的c ++程序base.
#include <iostream.h>
#include <conio.h>
class base
{
int x;
public:
int y;
void set(int a,int b)
{
x=a;
y=b;
}
void show()
{
cout<<"X ="<<x;
}
};
class der:public base
{
int i;
};
void main()
{
clrscr();
int p,q;
base o1;
der o2;
o2.y=10;
o2.x=20;
q=sizeof(o2);
p=sizeof(o1);
cout<<"Size of Abc "<<p;
cout<<"\nSize of Der "<<q;
getch();
}
Run Code Online (Sandbox Code Playgroud)
因为我们知道私有成员不是继承的,但当我发现o1它的大小给出4(显然有2个int成员)但是大小o2为6但如果private没有继承则应该是4 .请有人帮忙.
还有一件事,因为我能够成为基础的公共成员fxns,反过来可以访问私有数据成员,所以我们可以说私人成员也可以在课外访问
"我们知道私人会员不是固执的"
这根本不是真的.私有成员是继承的,但派生类无法访问它们.所以它们的存储仍然存在 - 否则基类也无法使用它自己的成员(回想一下派生类对象"是一个"基类对象,只是添加了更多的东西).
| 归档时间: |
|
| 查看次数: |
1193 次 |
| 最近记录: |