Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Про #include


Автор: EKoshelev 2.3.2011, 16:30
В Visual Studio 2005 есть два проекта, в каждом из которых есть класс типа вот такого:

Код

class CVCam : public CSource
{
public:
private:
};

Это файл (*.h)
В одном проекте говорит, что 
error C2504: 'CSource' : base class undefined

А в другом молча компилит. Ни в одном, ни в другом нет ни одного #include. Если в первом (где орёт) дописать инклуд, в котором описан класс CSource, то такой ошибки уже не выводит. Нельзя ли объяснить, почему второй (который компилится) не требует никаких инклудов?


И вообще, если не трудно, посоветуйте какой-нибудь литературки, чтобы самостоятельно научиться разбираться в том откуда у подобных (и всех остальных) ошибок ноги растут. А то по формулировке не всегда понятно в чём дело, или дело тупо не в том, о чём речь в формулировке...

Заранее спасибо.

Автор: RastaDja 2.3.2011, 17:34
Такое может быть, например если дублируются дефайны
Код

ifndef SOMEFILE_H
#define SOMEFILE_H
...
#endif

// h2.h
#ifndef SOMEFILE_H
#define SOMEFILE_H
...
#endif

// c.cpp
#include "h1.h"
#include "h2.h" // текст этого файла будет исключен из компиляции


Посмотри нет ли у тебя такого

Автор: baldina 2.3.2011, 18:42
Цитата(EKoshelev @  2.3.2011,  16:30 Найти цитируемый пост)
Ни в одном, ни в другом нет ни одного #include

а в .cpp какие инклуды? а в stdafx.h?
надо посмотреть код, иначе гадание 

Автор: bsa 2.3.2011, 22:30
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=269794&kw=faq-c++

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)