Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Harb
1 / 1 / 0
Регистрация: 23.03.2014
Сообщений: 79
#1

Запись class X; - C++

24.03.2014, 16:49. Просмотров 180. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Изучаю MFC по книге. Использую Visual Studio 2008.

Есть файлы X.h и X.cpp, в которых содержится описание класса X. Есть файлы Y.h и Y.cpp, в которых содержится описание класса Y. Описание класса Y содержит в себе методы с формальными переменными типа X.

Если я пишу в Y.h:
C++
1
#include X.h
то получаю ошибку C2370.

Вместо этого, в книге предлагается написать так:

C++
1
class X;
тогда все работает. Можете объяснить смысл данной записи?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 16:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись class X; (C++):

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') - C++
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

Работа с class ами. Заполнение дин. массива типа class - C++
Всем доброго времени суток! Это моя первая тема на этом сайте, поэтому если что извините меня (за неточности итд итп). Мне нужно...

Нужно объект типа класс проинициализировать с помощью перегруженного конструктора Class::Class( bool a ) - C++
Плиз помогите. Не знал, что я такой чайник.) Итак: есть два класса: CMyClass.h CMyClass.cpp и

Create a programm that creates an object of created class Time and tests the member functions of class - C++
Time Class Create a class called Time that might be used to represent time. 1. Your class should include three data...

enum и class как составляющие другого class - C++
Как организовать ввод enuma с клавиатуры (51-я строка)? Как прикрепить класс date к employee в private? :wall: #include &lt;iostream&gt; ...

vector<[class]> in class и перегрузка (ostream) - C++
Доброе всем время суток ) столкнулся с проблемой Есть у меня несколько классов и есть класс внутри которого созданы векторы хранящие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.03.2014, 16:51 #2
Цитата Сообщение от Harb Посмотреть сообщение
тогда все работает. Можете объяснить смысл данной записи?
сообщаем о том, что есть такой класс X, реализация которого будет когда либо приведена
Harb
1 / 1 / 0
Регистрация: 23.03.2014
Сообщений: 79
24.03.2014, 23:06  [ТС] #3
Спасибо!
Как-то запутанно все получается. Пусть у меня есть A,B,C.... классы, которые определены соответственно в A.h,B.h,C.h... и A.cpp,B.cpp,C.cpp... и есть некоторый файл MAIN.cpp, в котором используются все эти классы. Получается в MAIN.cpp, я должен буду написать:
C++
1
2
3
4
class A;
class B;
class C;
...
Почему я не могу использовать #include?
DrOffset
7091 / 4232 / 950
Регистрация: 30.01.2014
Сообщений: 7,007
24.03.2014, 23:28 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Harb Посмотреть сообщение
Почему я не могу использовать #include?
Можешь.
Предварительное объявление класса используется для
1) Минимизации зависимостей, позволяя не включать заголовочный файл там где это не требуется. В целом это позволяет сократить время компиляции.
2) Разрешения циклических зависимостей классов в заголовочных файлах.
Harb
1 / 1 / 0
Регистрация: 23.03.2014
Сообщений: 79
25.03.2014, 00:54  [ТС] #5
DrOffset, спасибо!
Вроде теперь становится понятнее, дальше уже буду сам разбираться, по литературе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 00:54
Привет! Вот еще темы с ответами:

Объяснить причины ошибки "Extra qualification 'CLASS CONSTRUCTOR' and 'CLASS' has incomplete type" - C++
Согласно синтаксису, вроде все правильно, но ошибка... что не так? Ошибки компилятора ниже на рисунке... #include &lt;iostream&gt; ...

Не пойму конструкцию template <template <class T> class X> - C++
Что это за шаблон такой?

Friend template class with template class argument - C++
Помогите подружить 2 класса: Имеется класс Student: template &lt;class _T&gt; class Faculty; class Student{ friend...

public class && static class - C++
Вообщем у меня небольшая связка, которую я хотел бы использовать в программе своей, но компилятор мне выдает ошибку и я не знаю что все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.03.2014, 00:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru