Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка: класс A использует класс B, который определяется

Автор вопроса: Robin RodricksОтветов: 1

У меня есть проект C++, который я успешно обернул классами .NET с помощью C++/CLI. Я определяю классы-оболочки в файле .h.

В настоящее время я получаю Error C2460: Mixer uses Track, which is being defined.

Как видно из приведенного ниже кода, Mixer использует Track в переменной MainTrack, а Track также использует Mixer в переменной Parent. Как мне связать эти 2 класса друг с другом и успешно скомпилировать?

#ifndef CPP_MIXER_NET_H
#define CPP_MIXER_NET_H


#pragma managed


// Mixer class
public ref class Mixer {
private:
    void Create();
    void Destroy();

public:

    // props
    Track MainTrack;

    Mixer();
    ~Mixer();
    !Mixer();

};


// Track class
public ref class Track {
private:
    void Create(Track^ parent);
    void Destroy();


public:

    // props
    Mixer Parent;
    Track Parent;

    // public constructor
    Track(Track^ parent);
    ~Track();
    !Track();

};


#endif
  • Возможно, Mixer^ Parent? И Трек^ Трек. Это или переосмыслить вашего дизайнера. ta.speot.is 25.03.2013

headercompilationvisual-c++managed-c++

Ответы

Ответ 1 · рейтинг 3 · Bartlomiej Lewandowski

Просто объявите свои классы в самом верху:

public class Mixer;
public class Track;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы