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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
#1

Объявление в классе объекта другого класса - C++

07.08.2011, 14:37. Просмотров 1210. Ответов 4
Метки нет (Все метки)

какая-то фигня получается, допустим есть 2 класса - class1 и class2, в хедерах class1.h подключён class2.h, а в class2.h подключён class1.h. И вот сама фигня, когда я например в class1 создаю объект класса class2, то вылезают такие ошибки
Код
error C2146: syntax error : missing ';' before identifier 'test'
 error C2501: 'CClass1' : missing storage-class or type specifiers
error C2501: 'test' : missing storage-class or type specifiers
как с этим бороться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2011, 14:37     Объявление в классе объекта другого класса
Посмотрите здесь:
C++ Объявление объекта класса
Объявление объекта вложенного класса C++
C++ Объявление класса, создание объекта и вызов функции-члена
Создать в классе поле типа другого класса C++
C++ Работа с классами (в главном классе создать указатель на экземпляр другого класса)
Возможен ли класс для обработки объекта другого класса? C++
C++ Передача данных объекта одного класса , объекту другого
Спрятать указатель на функцию класса в map и вызвать из другого объекта C++
Обрыв функции при вызове метода из объекта другого класса C++
Использование своего объекта своего класса внутри другого C++
C++ Непонятное объявление в классе
C++ Объявление матрицы в классе

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.08.2011, 14:40     Объявление в классе объекта другого класса #2
стражи включения стоят?
покажите код
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
07.08.2011, 15:34  [ТС]     Объявление в классе объекта другого класса #3
ну код прост...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Test1.h: interface for the CTest1 class.
//
//////////////////////////////////////////////////////////////////////
 
#if !defined(AFX_TEST1_H__D0C0B304_C969_40BE_BADA_F4A2F836F8B0__INCLUDED_)
#define AFX_TEST1_H__D0C0B304_C969_40BE_BADA_F4A2F836F8B0__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
#include "test2.h"
 
class CTest1  
{
public:
    CTest1();
    virtual ~CTest1();
 
};
 
#endif // !defined(AFX_TEST1_H__D0C0B304_C969_40BE_BADA_F4A2F836F8B0__INCLUDED_)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Test2.h: interface for the CTest2 class.
//
//////////////////////////////////////////////////////////////////////
 
#if !defined(AFX_TEST2_H__92D40EE2_B73E_48F8_BFC4_ED9FC587ED38__INCLUDED_)
#define AFX_TEST2_H__92D40EE2_B73E_48F8_BFC4_ED9FC587ED38__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
#include "test1.h"
 
//class CTest1;
class CTest2  
{
public:
    CTest2();
    virtual ~CTest2();
 
    CTest1 test;
};
 
#endif // !defined(AFX_TEST2_H__92D40EE2_B73E_48F8_BFC4_ED9FC587ED38__INCLUDED_)
Добавлено через 11 минут
немного не так, там в классе CTest1 должен быть ещё объявлен CTest2 test, вот как так сделать?

Добавлено через 38 минут
этот пример можно ещё сравнить вот с этим
C++
1
2
3
4
5
6
7
8
9
10
11
class CTest1
{
public:
    CTest2 test;
};
 
class CTest2
{
public:
    CTest1 test;
};
как в классе CTest1 можно объявить CTest2?
LosAngeles
Заблокирован
07.08.2011, 15:39     Объявление в классе объекта другого класса #4
указатели на объекты вместо объектов
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
07.08.2011, 15:44  [ТС]     Объявление в классе объекта другого класса #5
спасибо
Yandex
Объявления
07.08.2011, 15:44     Объявление в классе объекта другого класса
Ответ Создать тему
Опции темы

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