Один файл не распознает класс другого файла в C ++ - PullRequest
0 голосов
/ 16 сентября 2008

У меня есть свой собственный класс внутри файла "Particles.h", а реализация класса находится внутри "Particles.cpp"

Я хочу, чтобы файл "Load.h" распознал мои классы внутри, поэтому я добавил строку

#include "Particles.h"

и файл не распознает его, и в прошлом все было в порядке (я не делал никаких изменений в этом классе).

Что мне делать?

Ответы [ 5 ]

2 голосов
/ 16 сентября 2008

Похоже, ваш путь включения - список каталогов, которые сканирует компилятор, чтобы найти файлы, которые вы #include - задан неправильно. Какой компилятор вы используете?

1 голос
/ 16 сентября 2008

Ну, если вы перечислили свои коды ошибок, это может помочь. Сверху головы, у вас есть что-то в Particles.h, чтобы убедиться, что файл включен только один раз? Есть два способа сделать это. Первый - использовать #pragma один раз, но я думаю, что это может быть связано с Microsoft. Второе - использовать #define. Пример:

#ifndef PARTICLES_H 
#define PARTICLES_H

class CParticleWrapper
{
...
};

#endif

Кроме того, если вы не наследуете класс от Particles.h или не используете экземпляр класса вместо указателя, вы можете использовать предварительное объявление класса и пропустить включение файла заголовка в файл заголовка, который сэкономит вам время компиляции.

#ifndef LOAD_H
#define LOAD_H

class CParticleWrapper;

class CLoader
{
   CParticleWrapper * m_pParticle;

public:

   CLoader(CParticleWrapper * pParticle);
   ...
};  

#endif

Затем в Load.cpp вы должны включить файл частиц.h.

0 голосов
/ 16 сентября 2008

Звучит так, как будто вам нужно включить определение класса Камень, но без подробностей это было бы невозможно сказать. Можете ли вы сузить ошибку, удалив несвязанный код и опубликовав это?

0 голосов
/ 16 сентября 2008

Dev C ++, использует GCC, Строка:

Stone *stone[48];

и там написано: «ожидаемый конструктор, деструктор или преобразование типов перед маркером *»

0 голосов
/ 16 сентября 2008

убедитесь, что файл «Particles.cpp» также включает в себя «Particles.h» для начала, и файлы находятся в одной папке, и все они являются частью одного проекта. это поможет, если вы также поделитесь сообщением об ошибке, полученным от вашего компилятора.

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