2015-03-05 4 views
-2

Возможно ли иметь два разных конструктора в файле, потому что у меня есть два разных класса.Два разных конструктора, которые имеют два разных класса.

Пример:

в animal.h файле

class Animal 
{ 
    .... 
} 

class Pet: public Animal 
{ 
    ... 
} 

в моем animal.cpp:

Animal::Animal() 
{ 
} 

Pet::Pet() 
{ 
} 
+1

Код выглядит хорошо. Вы сталкиваетесь с какой-то проблемой? Получить более подробную информацию - сообщения об ошибках или нежелательное поведение. –

ответ

1

Технически: Да, это возможно. Обычная файловая структура с *.cpp и *.h или *.hpp файлами - это только Соглашение. Язык не мешает вам определять конструкторы или другие функции-члены для двух разных классов в одном исходном файле.

animal.h:

#ifndef ANIMAL_H 
#define ANIMAL_H 

class Animal 
{ 
public: 
    Animal(); 
}; 

#endif 

pet.h:

#ifndef PET_H 
#define PET_H 

#include "animal.h" 

class Pet : public Animal 
{ 
public: 
    Pet(); 
}; 

#endif 

animal.cpp:

#include "pet.h" 

Pet::Pet() {} 

Animal::Animal() {} 

ли вы должен сделать это совсем другая история. Обычно это упростит вашу структуру проекта и будет сложнее поддерживать. Приведенный выше пример является особенно плохим случаем, который любой компетентный программист на C++ захочет реорганизовать.

Смежные вопросы