Получение ошибок при использовании предварительных объявлений класса в Xcode - PullRequest
1 голос
/ 22 февраля 2011

У меня проблема при попытке использовать предварительное объявление одного из моих классов в Xcode.

Вот моя базовая архитектура:

MyClassA.h:

class MyClassA{
  ... list of members and method prototypes ...
};

MyClassA.cpp:

#include "MyClassA.h"

--- list of methods for MyClassA ...

MyClassB.h:

class MyClassA; // forward declaration

class MyClassB{
  ... list of members and methods ...
  MyClassA* ptrToA;
};

MyClassB.cpp:

#include "MyClassB.h"

... list of methods for MyClassB ...

Это работает на моем компьютере с Windows в Visual Studio без проблем, делайте это все время. Тем не менее, на Mac в XCode это выдает мне ошибку:

Forward declaration of 'struct MyClassA'

Есть идеи? Сообщение об ошибке, кажется, не имеет особого смысла, так как я объявил класс простым как день, и оно возвращается с ошибкой в ​​структуре. Разве предварительные объявления не поддерживаются в XCode (довольно простое сообщение об ошибке, кажется, указывает, что это - проблема, кроме путаницы struct / class)? Мой проект скомпилирован как C ++, а не C. Есть ли еще одна пропущенная настройка проекта, которая может быть причиной этого?

Спасибо.

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Убедитесь, что у вас есть #include "MyClassA.h" в MyClassB.cpp, если только вы не собираетесь разыменовывать ptrToA, или вам не нужно ничего знать о базовом типе.

0 голосов
/ 22 февраля 2011

Какая строка кода на самом деле вызывает ошибку? Я ожидаю, что вы забыли включить MyClassA.h в MyClassB.cpp, и ошибка возникает, когда вы пытаетесь new объект.

Занятия являются структурами. По умолчанию они просто помечают своих участников закрытыми, а структуры - как общедоступные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...