Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

07.08.2011, 14:37. Просмотров 1257. Ответов 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
как с этим бороться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2011, 14:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объявление в классе объекта другого класса (C++):

Объявление объекта класса fstream в качестве статической компоненты другого класса - C++
Доброго времени суток. Есть задание, в котором говорится "...Перепишите программы из упражнений 4 и 6 таким образом, чтобы использовать...

Объявление объекта одного класса в описании другого класса - C++
Здравствуйте. Почему при объявлении Student s в классе Teacher не возникает ошибки? Ведь такой объект уже существует. И почему при...

Передача объекта методу другого объекта другого класса - C++
Всем привет. Есть у меня класс test1, который имеет конструкторы только с параметрами. Другой класс test2 имеет конструктор, который...

Объявление объекта класса - C++
Доброе время суток! Дело вот в чем: В конструкторе c параметрами класса Piramida, мне нужно создать объект класса M_Ygolnik с...

Как в классе А у объекта класса B вызвать метод класса B ? - C++
Есть Класс A и класс B . В классе B лежит объект типа ArrayList , назовём его arrayList, в этом же классе есть метод push() . Возможно ли в...

Объявление объекта вложенного класса - C++
Есть структура наподобие: template<class T> class A{ //...... public: class B { int dd; int mm; int yy; ...

4
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.08.2011, 14:40 #2
стражи включения стоят?
покажите код
0
Xtir
12 / 12 / 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?
0
LosAngeles
Заблокирован
07.08.2011, 15:39 #4
указатели на объекты вместо объектов
2
Xtir
12 / 12 / 0
Регистрация: 10.07.2010
Сообщений: 130
07.08.2011, 15:44  [ТС] #5
спасибо
0
07.08.2011, 15:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2011, 15:44
Привет! Вот еще темы с ответами:

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

Создание объекта класса с полем являющимся объектом другого класса - C++
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Объявление класса, создание объекта и вызов функции-члена - C++
Всем добрый день! Вот так я объявляю класс. typedef map<string, double> datablock; typedef map<string, string> groupvars; ...

Создать в классе поле типа другого класса - C++
Как создать в классе поле типа string? Я пишу просто string Name, но компилятор ругается.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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