一个关于父类中定义vector在子类中使用的问题。
时间:2011-12-18
来源:互联网
我在父类(假定为A类)中定义了一个vector。
typedef std::vector<void*> VArray, FAR *LPVArray;
...
private:
VArray FMemTbl; //内存表
在父类的构造函数中对此动态数组进行初始化
A::A(const int iMaxPageSize)
{
...
vector<void*> FMemTbl(iMaxPageSize, NULL);
}
我又定义了一个B类,继承自A类。
B类的构造函数是这样定义的:
class B: public A
{
public:
B(const int iMaxPageSize = 1024):A(iMaxPageSize){}
...
};
现在我定义了一个B类的对象
B* pB = new B(1024);
但是我发现在pB的动态数组FMemTbl的size为0。
我单步跟踪后发现在A类中FMemTbl的size的确为1024。
请问这是为什么呢??
typedef std::vector<void*> VArray, FAR *LPVArray;
...
private:
VArray FMemTbl; //内存表
在父类的构造函数中对此动态数组进行初始化
A::A(const int iMaxPageSize)
{
...
vector<void*> FMemTbl(iMaxPageSize, NULL);
}
我又定义了一个B类,继承自A类。
B类的构造函数是这样定义的:
class B: public A
{
public:
B(const int iMaxPageSize = 1024):A(iMaxPageSize){}
...
};
现在我定义了一个B类的对象
B* pB = new B(1024);
但是我发现在pB的动态数组FMemTbl的size为0。
我单步跟踪后发现在A类中FMemTbl的size的确为1024。
请问这是为什么呢??
作者: zgc7622 发布时间: 2011-12-18
把vector定义为protected,private只有基类中才有,派生类中不会继承基类的私有成员变量
作者: yjz1409276 发布时间: 2011-12-18
一样的,问题依旧。
作者: zgc7622 发布时间: 2011-12-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28