@savva09
Начинающий .NET-ер

Почему пишет неопределенный тип?

657c68f21a823672378998.png
Код класса:

#include "EventArgs.h"
#include <vector>
#include <string>

using namespace std;

class EventArgs {
public:
    static const EventArgs Empty;
};

const EventArgs EventArgs::Empty = EventArgs();

class CmdEventArgs : public EventArgs
{
public:
    enum ReturnTypes{
        Nothing,
        Args
    };

    ReturnTypes content_type;

    vector<string> args;

    CmdEventArgs(ReturnTypes type)
    {
        content_type = type;
    }

    CmdEventArgs(ReturnTypes type, vector<string> args)
    {
        content_type = type;
        this->args = args;
    }

    static const CmdEventArgs Empty;
};

const CmdEventArgs CmdEventArgs::Empty = CmdEventArgs(CmdEventArgs::Nothing);

По неопределенной причине Empty инициализирует прекрасно.

И на будущее посоветуйте пожалуйста как решать эту ошибку, ведь она возникает по самым разным проблемам.
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
Судя по вот этому: "EventArgs.h", в вопросе показан код из срр файла. А в другом срр файле происходит создание объектов и там включен только "EventArgs.h" с forward declaration этих классов. Собственно, об этих классах там известно только то, что они есть и можно только указатель на них создать и всё. Определение класса олжно быть в хэдере и этот хедер надо включить во все файлы, которые этот класс используют.
И сделай виртуальный деструктор. Но это уже следующая ошибка, про которую спросишь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы