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

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

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

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

23.10.2012, 23:51. Просмотров 686. Ответов 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     Подключение одной директивы в нескольких файлах
Посмотрите здесь:

Подключение с помощью директивы #include нескольких функций, находящихся в разных файлах. - C++
Здравствуйте, уважаемые программисты. Помогите, пожалуйста, разобраться в такой ситуации: есть несколько функций, каждая из которых...

Подключение заголовочного файла "level.h" (tinyXML) в нескольких файлах - C++
Здравствуйте, хотел бы уточнить у знающих людей, почему не компилится проект с использованием tinyXML. У меня есть вот такой кусок кода в...

Объявление класс в нескольких файлах - C++
Можноли как-то объявление одного класса разбить на несколько заголовочных файлов? Хочу создать класс, в котором основной функционал...

Внешняя переменная в нескольких файлах - C++
file01.h #ifndef FILE01_H_ #define FILE01_H_ int blem = 1; #endif file02.h

Использование enum в нескольких файлах - C++
Как объявить или куда поместить enum mode{x, y, z} чтобы его можно было использовать в файлах f1.h и f2.h ? (mode- один из аттрибутов...

Считывание из одной строки. Как сделать из нескольких? - C++
#include &quot;stdafx.h&quot; #include &lt;iomanip&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;fstream&gt; #include...

Как задать выполнение нескольких событий на нажатие одной кнопки - C++
Добрый день всем! На форме расположен компонент TListView. По нажатию на заголовок столбца нужно выполнить сортировку данных (например,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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Эксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 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Эксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 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     Подключение одной директивы в нескольких файлах
Еще ссылки по теме:

Дан текстовый файл,состоящий из одной или нескольких строк. помогите решить - C++
Дан текстовый файл,состоящий из одной или нескольких строк.Каждая строка файла содержит числа,разделенные пробелами. Польхователь вводит с...

Дан текст. файл, сост. из одной или нескольких строк.подскажите,как написать программу - C++
Дан текст. файл, сост. из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Из каждой строки файла...

Директивы препроцессора - C++
Помогите разобраться. Я не могу понять как работают директивы препроцессора. Где находится файл описания, файл реализации, нужно ли...

Директивы и их свойства - C++
Ребят вопрос в том что в учебниках пишут мол в случае чего смотрите в директиве какие там есть методы встроенные и изучайте их . Сами...

Директивы компилятора - C++
Доброго времени суток! Меня интересует что за директивы, и где можно о них почитать. Почему именно эти директивы. Дело в том что...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 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     Подключение одной директивы в нескольких файлах
Ответ Создать тему
Опции темы

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