如何在c++模板对象中设置值

How to set values in C++ template object?

本文关键字:对象 设置 c++      更新时间:2023-10-16

我正在尝试创建一个模板类,允许我打印对象的内容,但是,作为新的,我正在努力设置数据的值。

例如,如果我有一个模板,它接受两个typename形参,我该如何设置这些值呢?我必须以类似于数组或向量的方式对待模板的每个实例吗?

Pair<int, double> first, second;

显然first = 10不起作用。我做错了什么?

您创建了两个Pair对象,因此您不能将5赋值给其中一个,因为5不是Pair。

Pair<int, double> first, second; // means that you have TWO pairs!
// it was equal to:
// Pair<int, double> first;
// Pair<int, double> second;
first.first = 5;
first.second = 3.14f;
second.first = 3;
second.second = 7.421f;

你可能想要这样的东西:

Pair<int, double> myPair; // only 1 pair
myPair.first = 5;
myPair.second = 3.14f;

希望您正在使用std::pair而不是编写自己的pair类。除了已经回答给你的,你还必须熟悉std::make_pair,它创建一对从参数中扣除类型,从而使你的代码更小,更易读。

的例子:

auto myPair = std::make_pair(4,5.6);