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

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

Войти
Регистрация
Восстановить пароль
 
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
#1

Подключение одной директивы в нескольких файлах - C++

23.10.2012, 23:51. Просмотров 670. Ответов 7
Метки нет (Все метки)

Здравствуйте форумчане!Изучаю классы и столкнулся с такой ошибкой :
Ошибка 1 error C2011: A: переопределение типа "class" c:\users\edison4\documents\visual studio 2010\projects\project\project\classa.h 3 1 Project
Понял что эта ошибка связана с тем что я подключаю заголовочный файл в другом заголовочном файле и в cpp файле main.Но мне нужно внутри одного класса объявить объект другого класса .Как реализовать это незнаю.
Вообщем вот что у меня есть и как сделать чтобы работало?

ClassA.h
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
class A
{
public:
    A(void) {}
    ~A(void);
    void ShowMessage(void)
    {
        //std::cout<<"TestText!";
    }
};
ClassB.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "ClassA.h"
class B
{
public:
    A a;
    B() {}
    ~B();
    void ShowMessage()
    {
        a.ShowMessage();
    }
};
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
#include "ClassB.h"
#include "ClassA.h"
B *b;
int main()
{
    
    b = new B();
    b->ShowMessage();
    system("pause");
    return 0;
}
И проект на всякий случай
https://www.dropbox.com/s/glsbuvrrvu0rqgj/Project.rar

Добавлено через 3 часа 3 минуты
Что никто не знает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 23:51     Подключение одной директивы в нескольких файлах
Посмотрите здесь:

C++ использование enum в нескольких файлах
Дан текстовый файл,состоящий из одной или нескольких строк. помогите решить C++
C++ Дан текст. файл, сост. из одной или нескольких строк.подскажите,как написать программу
C++ Объявление класс в нескольких файлах
Внешняя переменная в нескольких файлах C++
C++ Директивы и их свойства
C++ Подключение с помощью директивы #include нескольких функций, находящихся в разных файлах.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
24.10.2012, 00:06     Подключение одной директивы в нескольких файлах #2
условная компиляция

Добавлено через 10 минут
либо как вариант:
-убрать #include <iostream.h> и #include "ClassA.h" из ClassB.h и main.cpp соответственно.
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
24.10.2012, 07:19  [ТС]     Подключение одной директивы в нескольких файлах #3
Но мне нужно использовать класс A в классе B и еще в main.cpp.Как такое реализовать?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 2
Завершенные тесты: 1
24.10.2012, 07:28     Подключение одной директивы в нескольких файлах #4
#ifndef в помощь

Добавлено через 3 минуты
И еще...
C++
1
2
#include "ClassB.h"
#include "ClassA.h"
фаил ClassA.h подключается в файле ClassB.h так что подключать ClassA в main нет необходимости, достаточно подключить только ClassB.h
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
25.10.2012, 16:11  [ТС]     Подключение одной директивы в нескольких файлах #5
А если у меня есть класс ClassC в котором мне нужно использовать класс B и этот класс C использовать в main.cpp получится та же ошибка, так как сделать ?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 2
Завершенные тесты: 1
25.10.2012, 20:44     Подключение одной директивы в нескольких файлах #6
ClassB.h
C++
1
2
3
4
#ifndef _CLASSB_H_
#define _CLASSB_H_
//Код класа B
#endif
ClassC.h
C++
1
2
3
4
#ifndef _CLASSC_H_
#define _CLASSC_H_
//Код класа C
#endif
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
25.10.2012, 21:13  [ТС]     Подключение одной директивы в нескольких файлах #7
Не сработало!
Проект
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 21:29     Подключение одной директивы в нескольких файлах
Еще ссылки по теме:

Директивы define C++
C++ Директивы препроцессора
C++ Считывание из одной строки. Как сделать из нескольких?
Как задать выполнение нескольких событий на нажатие одной кнопки C++
C++ Подключение заголовочного файла "level.h" (tinyXML) в нескольких файлах

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12508 / 7070 / 794
Регистрация: 27.09.2012
Сообщений: 17,457
Записей в блоге: 2
Завершенные тесты: 1
25.10.2012, 21:29     Подключение одной директивы в нескольких файлах #8
нужно
C++
1
#ifndef
а вы написали
C++
1
#ifdef
Добавлено через 3 минуты
И объявление класса C тоже заключите в
C++
1
2
3
4
#ifndef _CLASSC_H_
#define _CLASSC_H_
//Объявление класса C
#endif
Yandex
Объявления
25.10.2012, 21:29     Подключение одной директивы в нескольких файлах
Ответ Создать тему
Опции темы

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