所以我有一个动态分配的基类数组.我已将其派生类的一些对象存储在数组中.
student(base)类及其派生类都有一个getInfo()函数,显然派生类已经覆盖了该类getInfo().目标是使用getinfo基类中的函数,然后将派生类的两个对象类型化为类,返回派生类并使用覆盖getinfo().
一切达到"休息"的效果都很完美.它正在弄清楚如何将对象强制转换为派生类,这些类正在杀死我.
我发现了一些可能的问题:
1)我没有正确动态分配.很可能,因为我讨厌指针而且非常厌恶它们.
2)我不知道我在做什么类型的铸造.
一些注意事项:
1)基类getinfo不是虚拟的
2)我不允许修改基类.
所以,令人困惑的代码的救星.怎么说你?你能帮助这个可怜的学生吗?
编辑!!!
更新了代码,现在不允许"从Student**到Gradstudent*的Static_cast"
#include <iostream>
#include "GradStudent.h"
#include "UndergradStudent.h"
int main()
{
int arraySize = 3;
Student* classRoom[arraySize];
GradStudent gst1("Ta", "Da", 4444, 'A', "Death");
cout << gst1;
UndergradStudent ust1("Bluh", "Bluh", 2222, 1);
cout << ust1;
Student bst1( "Blah", "Blah", 1111 );
classRoom[0] = &bst1;
classRoom[1] = &gst1;
classRoom[2] = &ust1;
for (int x = 0; x < arraySize; x++)
{
cout << classRoom[x]->getInfo(); …Run Code Online (Sandbox Code Playgroud) 这似乎是糟糕的编码实践,但这是给我的指导方针。我想作为序言说我不知道这将如何在主要内容中实际实现,我只是在编写课程。
class Example
{
private:
static int total;
public:
void initalizeTotal();
}
Example::initalizeTotal()
{
total = 0;
}
Run Code Online (Sandbox Code Playgroud)
total 将(我猜)用于计算该类的对象数量。这基本上就是我要说的。问题是我如何弄清楚如何实际调用该函数。我不能只是在构造函数中调用它,感觉每次都会重置总数。我已经尝试并失败了“检查”变量是否有值,如果没有,则调用该函数。
任何人都可以提供任何建议吗?
编辑:我忘了包括总数是静态的。而且我必须有一个初始化总数的函数。这是任务的要求。
c++ ×2