模板调用中的 C++ 模板

标签 c++ templates

关于c++模板机制的一个小问题。假设我们有一个名为 Point 的类。现在假设“Data”是一个模板类/容器,只包含 T(模板)数据成员。 也就是说,“数据”看起来或多或少是这样的:

Template <class T>
class Data {
T dMember;
……..
};

现在假设有人在 main.cpp 文件中使用此类并执行以下声明:

Data<Data<Point>> d;

我试图完全理解创建的对象的外观。我试图使用编译器进入类调用但无济于事。我知道 Data 需要初始化 Data 所以它会调用自己一次,但它到底做了什么?是否有构造函数被激活?

谢谢, 盖伊

最佳答案

这就像在下面的例子中实例化 Data2:

class Data1 {
    Point dMember;
};

class Data2 {
    Data1 dMember;
};

Data2 d; // = Data<Data<Point>> d;

基本上,Point 的包装。

关于模板调用中的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346865/

相关文章:

c++ - 真正的位置字符串格式?

c++ - 如何在gecode中打印变量的值

c++ - 游戏运行几分钟后 SDL_Surface 消失?

C++ 在成员函数范围内使用语句

C++:复杂类上的 2 个模板与 1 个模板特化

c++ - 为什么 std::vector<bool> 更快?

c++ - 如何确定图像中多边形的面积

c++ - 与模板模板类一起使用的自定义模板参数绑定(bind)器

特定网页上的 CSS 问题

c++ - push_back()不适用于自定义数据类型(模板类)