如何在c++模板对象中设置值
How to set values in C++ template object?
我正在尝试创建一个模板类,允许我打印对象的内容,但是,作为新的,我正在努力设置数据的值。
例如,如果我有一个模板,它接受两个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);
相关文章:
- 如何在自删除后将对象设置为nullptr
- 在 c++ 中将对象设置为等于同一类的构造函数是否有效?
- std::用派生类对象设置,但用gcc8.1设置基类比较器
- 如何在 gdb 中的所有构造函数上同时为 C++ 对象设置断点?
- 如何将C++ time_t对象设置为纪元?
- 使用PYBIND11,如何为Array_t对象设置基础内存的所有权
- 如何使用基类对象设置派生类变量的值
- C 不能将对象设置为方法的返回对象
- 一旦对象设置为 null,用于声明对象的堆大小的变量就设置为 null?
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 如何将2D向量中的对象设置为空指针[C ]
- 如何用类别的consumetrized构造函数声明使用类的比较对象设置的STL设置
- 为什么重载运算符不将主对象设置为值集
- 如何在 OpenGL 中为 3D 对象设置原点
- C++是否可以将fstream对象设置为在每次调用<<
- 如何从C#将对象设置为C++
- 哪个更好?如果子对象是类的成员,则为子对象设置父对象
- c++无法为包含静态变量的对象设置NULL指针
- 将数组中的对象设置为新对象
- 在OpenGL中为不同的对象设置单独的材质属性