【发布时间】:2018-07-21 13:40:21
【问题描述】:
我有一个基类 Array 和一个派生类 NumericArray
class Array{//Array.h
private: int size;
public: Array();//Default constructor
Array(int index);// Initialize with size
GetSize();//getter function
};
class NumericArray:public Array
{//NumericArray.h
public: NumericArray();//Default constructor
NumericArray(int index);// Initialize with size
};
我知道如何调用 NumericArray 类中的默认 Array 构造函数。但是当谈到 NumericArray(int index) 时,我不知道。由于派生类无法访问基类中的大小,我认为我应该在基类中使用 getter 函数。但是我该怎么做呢?
谢谢。
【问题讨论】:
-
不是您的问题,但请注意,可变数组不太适合普通继承。例如。
std::unique_ptr专门用于数组,不允许向上或向下转换。当然,这取决于基类Array提供的功能,但如果它不提供任何类似数组的功能,它可能一开始就不应该存在。 -
缺少的分号表明显示的代码不是真正的代码。请务必发布真实代码。
-
我看到这里提出了一个暗淡的、非常暗淡的实际问题:是的,在派生类构造函数的主体中,因为现在已经完全构造了基类,您可以从派生类的构造函数。
-
即使对基类的构造函数和析构函数的访问没有被继承,它们也会被派生类的构造函数和析构函数自动调用。
标签: c++