结构的构造函数
Constructor for the structure
我有以下两个c++结构:
struct Vertex3D{
GLfloat x;
GLfloat y;
GLfloat z;
Vertex3D(GLfloat a, GLfloat b, GLfloat c){
x = a;
y = b;
z = c;
}
};
struct Triangle3D{
Vertex3D v1;
Vertex3D v2;
Vertex3D v3;
Triangle3D(Vertex3D vt1, Vertex3D vt2, Vertex3D vt3){
};
};
Vertex3D的构造器很好,但Triangle3D的构造器给了我一些警告,我无法在xcode中编译。错误提示"Triangle3D"的构造函数必须显式初始化没有默认构造函数的成员"v2"。但是,我已经为结构体的Vertex3D类型创建了一个构造函数。什么是实际错误的这个构造器在Traingle3D ?我是否需要改变它,或者它是不可能创建一个构造函数与一些其他结构?
但是您没有提供默认构造函数(即可以不带参数调用的构造函数)
解决这个问题的一种方法是默认构造函数的所有参数:Vertex3D(GLfloat a = 0.0, GLfloat b = 0.0, GLfloat c = 0.0){
...
}
但是也许你应该显式初始化三角形的每个成员:
Triangle3D(Vertex3D vt1, Vertex3D vt2, Vertex3D vt3)
: v1(vt1), v2(vt2), v3(vt3)
{
// Probably don't need code here.
}
你的意思是?
struct Triangle3D{
Vertex3D v1;
Vertex3D v2;
Vertex3D v3;
Triangle3D(Vertex3D vt1, Vertex3D vt2, Vertex3D vt3): v1(vt1),v2(vt2),v3(vt3){
};
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 我应该在C++中将这些结构用作参数化构造函数吗?
- 初始化构造函数C++中结构的向量
- C++ 带有默认参数的结构,可选择在构造函数中更改
- 我们可以用参数化构造函数初始化结构的数组吗?
- 使用模板化结构作为构造函数参数
- 具有位域的结构的 Constexpr 构造函数
- 未调用的初始化静态thread_local结构的构造函数和析构函数
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 如何在继承层次结构中调用具有默认参数的构造函数?
- 使用构造函数初始化结构还是在之后设置其值更好?
- 嵌套的模板结构构造函数实现
- C++:如何在结构中定义类实例.类具有参数化的构造函数
- 结构中的默认成员值或默认构造函数参数
- c++ 17 中结构自动定义构造函数的规则是什么?
- 在结构的构造函数中使用类方法赋值变量