两个不同的构造函数,有两个不同的类

时间:2015-03-05 17:29:18

标签: c++

是否可以在文件中包含两个不同的构造函数,因为我有两个不同的类。

示例:

在animal.h文件中

class Animal
{
  .... 
}

class Pet: public Animal 
{
  ... 
}

在我的animal.cpp中:

 Animal::Animal()
 {
 }

 Pet::Pet()
 {
 }

1 个答案:

答案 0 :(得分: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 ++程序员都想要重构。