我想在文件array.cpp
中初始化一个指针数组,并在另一个main.cpp
中检索它。
我现在有六个头文件/ src文件:parent.h/cpp
,childA.h/cpp
,childB.h/cpp
。
class Parent(){ public: Parent(); virtual void sayHi() = 0; }; Parent::Parent() {} class ChildA : Parent{ public: ChildA() void sayHi(); ChildA::ChildA() void ChildA::sayHi(){ std::cout << "Hello A!" } class ChildB : Parent{ public: ChildB() void sayHi(); ChildB::ChildB() void ChildB::sayHi(){ std::cout << "Hello B!" }
我了解如何创建在
ChildA()
类中包含ChildB()
和main.cpp
的指针的数组:
Parent *children[3] = {new ChildA(), new ChildB(), new ChildA()}
如果要在另一个文件中初始化它,例如说
array.cpp
,然后从main.cpp
中检索出来,该怎么办?
我粗略的想法是在array.h/cpp
中创建定义一个类,如下所示:
class Array(){ Array(); Parent *get_array(); // I don't know how to define it as an array of pointers } Array::Array() Parent *Array::get_array() { Parent *array[] = { new ChildA(), new ChildB(), new Child() }; return *array; }
以及
main.cpp
:
Array array; Parent *children[] = array.get_array(); // It cannot be initialized like this
这不起作用,我也不知道如何从这里开始。
我想在文件array.cpp中初始化一个指针数组,并在另一个main.cpp中检索它。我现在有六个头文件/ src文件:parent.h / cpp,childA.h / cpp,childB.h / cpp。 class Parent(){...
仅使用std::vector
而不是C数组: