小编use*_*101的帖子

C++类型将基础对象转换为派生对象

所以我有一个动态分配的基类数组.我已将其派生类的一些对象存储在数组中.

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)

c++

4
推荐指数
1
解决办法
5341
查看次数

C++ - 在成员函数内初始化成员变量?

这似乎是糟糕的编码实践,但这是给我的指导方针。我想作为序言说我不知道​​这将如何在主要内容中实际实现,我只是在编写课程。

class Example
{
  private:
     static int total;
  public:
    void initalizeTotal();
}

Example::initalizeTotal()
{
   total = 0;
}
Run Code Online (Sandbox Code Playgroud)

total 将(我猜)用于计算该类的对象数量。这基本上就是我要说的。问题是我如何弄清楚如何实际调用该函数。我不能只是在构造函数中调用它,感觉每次都会重置总数。我已经尝试并失败了“检查”变量是否有值,如果没有,则调用该函数。

任何人都可以提供任何建议吗?

编辑:我忘了包括总数是静态的。而且我必须有一个初始化总数的函数。这是任务的要求。

c++

1
推荐指数
1
解决办法
1709
查看次数

标签 统计

c++ ×2