如何在构造函数中为不同的类使用模板化的类

坏的

我为类vec(矢量数学)使用以下构造函数,可以使用坐标(coord类)构造该构造函数coord,因为我想这两个双和int类的模板coords由于各种原因。

vec(coord<double> *start, coord<double> *end);
vec(coord<int> *start, coord<double> *end);
vec(coord<double> *start, coord<int> *end);

有没有一种更好的方法来设置构造函数,比如我可以拥有一个可以接受各种参数的构造函数?

另外,假设这是可能的,那叫什么呢?任何研究都提供了很少的信息

深的

类和类模板都可以具有构造函数模板这些是创建构造函数的一种特殊的函数模板

class my_ordinary_class
{
    template<typename T, typename U>
    my_ordinary_class(coord<T>* start, coord<U>* end);
};

template<typename X>
class my_class_template
{
    template<typename T, typename U>
    my_class_template(coord<T>* start, coord<U>* end);
};

例如,如果我们创建这样的对象my_ordinary_class

coord<int> s;
coord<double> d;
my_ordinary_class my_obj(&s, &d);

编译器隐式创建(“实例化”)如下所示的构造函数:

template<>
my_ordinary_class::my_ordinary_class<int, double>(coord<int>* start,
                                                  coord<double>* end);

intdouble距离推断模板参数&s&d; 它们用于模板参数TU构造函数模板。

对于类模板my_class_template,我们首先创建(“实例化”)一个类,例如my_class_template<bool>然后,我们可以使用其构造函数模板创建该类的对象:

coord<int> s;
coord<double> d;
my_class_template<bool> my_obj(&s, &d);

编译器将实例化该类,my_class_template<bool>并从其构造函数模板中实例化一个构造函数,如下所示:

template<> // class template
template<> // constructor template
my_class_template<bool>::my_class_template<int, double>(coord<int>* start,
                                                        coord<double>* end);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中为不同的模板类型使用不同的类定义?(类超载?)

来自分类Dev

如何模板化类构造函数

来自分类Dev

如何在C ++中使用通用引用参数为模板类编写构造函数

来自分类Dev

如何在类模板的构造函数中初始化向量成员变量

来自分类Dev

如何在模板类中为模板函数添加别名

来自分类Dev

如何在工厂中为延迟实例化指定具体类/如何延迟构造函数调用

来自分类Dev

如何在模板派生类中调用模板基类的构造函数?

来自分类Dev

在类构造函数中设置std :: vector,为元素构造函数使用不同的值

来自分类Dev

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

来自分类Dev

使用不同的构造函数为不同的类创建实例

来自分类Dev

如何在C ++中的类构造函数中使用线程?

来自分类Dev

构造函数接受参数时如何实例化模板类

来自分类Dev

显式实例化的类模板中的自动构造函数

来自分类Dev

类定义中构造函数的模板专业化

来自分类Dev

如何在类模板之外定义类模板的构造函数模板?

来自分类Dev

如何在类模板之外定义类模板的构造函数模板?

来自分类Dev

如何在两个不同对象的基类中使用模板化类

来自分类Dev

模板类构造函数的专业化

来自分类Dev

模板类构造函数的专业化

来自分类Dev

如何在C ++中的另一个模板函数中使用属于模板化类的嵌套类型?

来自分类Dev

使类模板化在继承构造函数中强制重复基类模板参数

来自分类Dev

如何在Cython中编写派生模板cpp类的构造函数?

来自分类Dev

C ++类:如何在move构造函数中“重置”模板字段?

来自分类Dev

如何在Cython中编写派生模板cpp类的构造函数?

来自分类Dev

类any中的模板构造函数与非模板构造函数

来自分类Dev

类any中的模板构造函数与非模板构造函数

来自分类Dev

当类仅获得最终字段时,如何在类的构造函数中仅使用if-else?

来自分类Dev

当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

来自分类Dev

如何在PHP中实例化具有参数化构造函数的.NET类?

Related 相关文章

  1. 1

    如何在C ++中为不同的模板类型使用不同的类定义?(类超载?)

  2. 2

    如何模板化类构造函数

  3. 3

    如何在C ++中使用通用引用参数为模板类编写构造函数

  4. 4

    如何在类模板的构造函数中初始化向量成员变量

  5. 5

    如何在模板类中为模板函数添加别名

  6. 6

    如何在工厂中为延迟实例化指定具体类/如何延迟构造函数调用

  7. 7

    如何在模板派生类中调用模板基类的构造函数?

  8. 8

    在类构造函数中设置std :: vector,为元素构造函数使用不同的值

  9. 9

    如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

  10. 10

    使用不同的构造函数为不同的类创建实例

  11. 11

    如何在C ++中的类构造函数中使用线程?

  12. 12

    构造函数接受参数时如何实例化模板类

  13. 13

    显式实例化的类模板中的自动构造函数

  14. 14

    类定义中构造函数的模板专业化

  15. 15

    如何在类模板之外定义类模板的构造函数模板?

  16. 16

    如何在类模板之外定义类模板的构造函数模板?

  17. 17

    如何在两个不同对象的基类中使用模板化类

  18. 18

    模板类构造函数的专业化

  19. 19

    模板类构造函数的专业化

  20. 20

    如何在C ++中的另一个模板函数中使用属于模板化类的嵌套类型?

  21. 21

    使类模板化在继承构造函数中强制重复基类模板参数

  22. 22

    如何在Cython中编写派生模板cpp类的构造函数?

  23. 23

    C ++类:如何在move构造函数中“重置”模板字段?

  24. 24

    如何在Cython中编写派生模板cpp类的构造函数?

  25. 25

    类any中的模板构造函数与非模板构造函数

  26. 26

    类any中的模板构造函数与非模板构造函数

  27. 27

    当类仅获得最终字段时,如何在类的构造函数中仅使用if-else?

  28. 28

    当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

  29. 29

    如何在PHP中实例化具有参数化构造函数的.NET类?

热门标签

归档