Четверг, 28 Марта 2024, 20:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Multiple declaration for при обявлении класса
Multiple declaration for при обявлении класса
bumer7721Дата: Пятница, 09 Ноября 2012, 18:07 | Сообщение # 1
был не раз
Сейчас нет на сайте
Выдает такие ошыбки:

[C++ Error] Adress.h(5): E2238 Multiple declaration for 'Adress'
[C++ Error] Adress.h(4): E2344 Earlier declaration of 'Adress'
[C++ Error] AdressBook.h(4): E2238 Multiple declaration for 'AdressBook'
[C++ Error] AdressBook.h(4): E2344 Earlier declaration of 'AdressBook'

в хедерах:
Code

#include <vcl.h>
#include <Grids.hpp>

class Adress
{
         protected:
                 AnsiString cyti;
                 AnsiString street;
                 AnsiString numerHous;
                 unsigned short int numerFlat;

         public:
                 Adress();
                 Adress(AnsiString Cyti, AnsiString Street, AnsiString NumerHous, unsigned short int NumerFlat);
                 Adress(const Adress &adress);

                 void setCyti(AnsiString Cyti){cyti=Cyti;};
                 void setSteet(AnsiString Street){street=Street;};
                 void setNumerHous(AnsiString NumerHous){numerHous=NumerHous;};
                 void setNumerFlat(unsigned short int NumerFlat){numerFlat=NumerFlat;};

                 AnsiString getCyti(){return cyti;};
                 AnsiString getSteet(){ return street;};
                 AnsiString getNumerHous(){return numerHous;};
                 unsigned short int getNumerFlat(){ return numerFlat;};

                 void print(TStringGrid *st);
                 ~Adress(){};
};


Code

#include <vcl.h>
#include "Adress.h"

class AdressBook:public Adress
{
         protected:
                 AnsiString name;

         public:
                 AdressBook();
                 AdressBook(AnsiString Name,
                            AnsiString Cyti,
                            AnsiString Street,
                            AnsiString NumerHous,
                            unsigned short int NumerFlat);
                 AdressBook(const AdressBook &aBook);
                 AdressBook(const AdressBook *aBook);
                  
                 void setName(AnsiString Name){name=Name;};

                 AnsiString getName(){return name;};

                 void print(TStringGrid *st);

};


Ети классы использую здесь:
Code

#include "ArrayAdressBook.h"

ArrayAdressBook::ArrayAdressBook()
{
  list=new TList();
}

void ArrayAdressBook::Add(AdressBook *aBook)
{
         list->Add(aBook);
}

void ArrayAdressBook::printList(TStringGrid *st)
{
         for (int i=0;i<list->Count;i++)
         {
                 AdressBook aBook((AdressBook)list->Items[i]);
                 aBook.print(st);
         }
}  
RUNGOGET2THECHOPAHДата: Пятница, 09 Ноября 2012, 19:01 | Сообщение # 2
участник
Сейчас нет на сайте
В начало каждого хэдэра #pragma once.

Сообщение отредактировал RUNGOGET2THECHOPAH - Пятница, 09 Ноября 2012, 19:01
N1ghtLightДата: Суббота, 10 Ноября 2012, 02:59 | Сообщение # 3
был не раз
Сейчас нет на сайте
или "header guards" smile
#ifndef _HEADER_TITLE_H_
#define _HEADER_TITLE_H_

... // Text of file

#endif
bumer7721Дата: Четверг, 15 Ноября 2012, 22:10 | Сообщение # 4
был не раз
Сейчас нет на сайте
Всем спасибо smile Получилось
Использовал
Quote (N1ghtLight)
#ifndef _HEADER_TITLE_H_
#define _HEADER_TITLE_H_

... // Text of file

#endif

но не во всех файлах, а только в AdressBook.h


Сообщение отредактировал bumer7721 - Четверг, 15 Ноября 2012, 22:14
Форум игроделов » Программирование » C/C++ » Multiple declaration for при обявлении класса
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг