C 如何仅实现多个继承类的一个构造函数
C++ How to implement only one constructor of a multiple inheritance class
我在下面有类:
enum class Kind {
Monday,
Tuesday,
};
class Day {
public:
Day(Kind kind) : kind_(kind) {}
private:
Kind kind_;
};
class Tuesday : public Day, public std::vector<int> {
public:
Tuesday(...) : std::vector<int>(...), Day(Kind::Tuesday) {}
};
您可以看到,即使是从一天开始继承的星期二类,也称为Day(Kind::Tuesday)
,因此Tuesday
的构造函数应与std::vector<int>
但是,即使是构造函数的形式相同,我都必须重写所有构造函数以匹配std::vector<int>
的构造函数,然后将Day(Kind::Tuesday)
附加到每个构造函数的末端。
我想要的就是将Tuesday
用作向量。所以我很好奇是否有一种简单的方法?
您可以使用variadic模板构造函数:
template <typename... Types>
Tuesday(Types... args) : std::vector<int>(args...), Day(Kind::Tuesday) {}
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 构造函数正在调用一个使用当前类类型的函数
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 构造函数在退出函数时无法初始化一个参数
- C++-我可以创建另一个类的成员并在构造函数中使用它吗
- 为什么需要知道一个类是平凡的还是有平凡的构造函数
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- 关于复制构造函数的一个棘手问题
- 没有公共构造函数作为另一个类模板成员的类模板
- C++:将初始化的对象传递给另一个类的构造函数;需要不必要的构造函数吗?
- 将另一个类的对象传递到当前类C++的构造函数中(不是成员初始化)
- 如何将我编写的对象传递到另一个类的构造函数中?
- 如何使用 swig 修改类构造函数以保留对其中一个构造函数参数的引用?
- C++:调用没有匹配函数:为什么需要一个空的构造函数?
- 在C++中将对象从另一个类传递到另一个类的构造函数?
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 创建一个没有复制构造函数的类的 std::vector 的 std::vector
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法