具有两个不同类的两个不同构造函数
Two different constructors that have two different classes
是否可以在一个文件中有两个不同的构造函数,因为我有两个不一样的类。
示例:
在animal.h文件中
class Animal
{
....
}
class Pet: public Animal
{
...
}
在我的animal.cpp中:
Animal::Animal()
{
}
Pet::Pet()
{
}
从技术上讲:是的,这是可能的。*.cpp
和*.h
或*.hpp
文件的常见文件结构只是一个约定。该语言不会阻止您为同一源文件中的两个不同类定义构造函数或其他成员函数。
动物.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
动物.cpp:
#include "pet.h"
Pet::Pet() {}
Animal::Animal() {}
是否应该这样做完全是另一回事。通常,这会使您的项目结构更难理解,也更难维护。上面给出的例子是一个特别糟糕的情况,任何有能力的C++程序员都想重构它。
相关文章:
- C++如果两个模板函数都与参数列表匹配,将调用哪个模板
- 用相同的参数声明两个构造函数的最偶像化的方法是什么?
- 当我链接两个静态C++库时,我可以在两个主函数库中有两个主要功能吗?
- 静态类属性,C++中的多个构造函数
- 如何同时创建一个具有两个或多个构造函数初始化的对象
- pair的两个构造函数几乎相同,为什么不生成构建错误?
- 为什么<T> LLVM 中的预期为 Expect&&... 实现两个构造函数<T>?
- 为什么我的类只适用于两个构造函数 C++
- 两个构造函数(带和不带参数),没有输入 -> 没有参数运行。跳过上述类中的构造函数
- 类介绍 (c++) 项目希望我们创建两个构造函数,但它们都不需要任何参数 - 我应该在这里做什么?
- 除了两个构造函数外,C++库导入也可以工作
- 在两个构造函数之前将我的静态数据成员在 CPP 文件中初始化为 0
- 如何有条件地在具有相同签名的两个构造函数之间切换
- RAII 在两个构造函数之间进行选择的方式
- 具有两个构造函数的抽象类
- 这两个构造函数调用之间的区别
- 为什么在我的程序中调用两个构造函数
- 组合复制和移动的两个构造函数
- 为什么这两个构造函数一起不会产生歧义错误?
- 在两个构造函数之间进行选择