假设我有一个类基类的对象:
// baseclass.h
class baseclass
{
baseclass() # default constructor, constructs baseclass object
}
在基类的 .cpp 中:
// baseclass.cpp
baseclass::baseclass()
{
// member functions and variables
}
现在我的目标是有一个派生类,并在派生类的默认构造函数中,创建一个静态大小为n 个基类对象的数组。为了尝试澄清,考虑这个问题的另一种方法是将基类视为扑克牌,我想通过调用派生类的默认构造函数来创建这些牌的数组(一副牌)。但是,我决定保留我的问题摘要的范围,因此我将继续使用基础/派生,以便其他人可以更轻松地了解这如何适用于他们。
我不确定以面向对象的方式设置它的最佳方法,到目前为止我有类似的东西,但我遇到了分段错误。这是我的设置方式:
// derivedclass.h (extending baseclass)
class derivedclass
{
// default constructor for derivedclass object
derivedclass();
// a pointer to an object of type baseclass
baseclass* bar;
// or should it be:
baseclass* bar[n] // where n is an integer
// or is there a better way to do it?
}
最后,因为我说过派生类对象可以有一个数组,所以我必须为派生类的 .cpp 中的默认构造函数做到这一点:
// derivedclass.cpp
derivedclass::derivedclass()
{
// so I need to initialize the member array
baseclass* bar = new baseclass[n] // where n is the size I want to initialize
// the array to
}
那么我列出的任何情况都会导致分段错误吗?创建这个对象数组的最佳方法是什么?抱歉,如果这是一个小问题,我是一名学生,仍在学习很多关于内存分配和指针的知识,通常处理我不必担心的语言。此外,为了他人的利益,我试图保持问题的抽象。提前致谢!