struct OctreeNode
{
T data;
T xmin,xmax;
T ymin,ymax;
T zmin,zmax;
OctreeNode <T> *top_left_front,*top_left_back;
OctreeNode <T> *top_right_front,*top_right_back;
OctreeNode <T> *bottom_left_front,*bottom_left_back;
OctreeNode <T> *bottom_right_front,*bottom_right_back;
OctreeNode //节点类
(T nodeValue = T(),
T xminValue = T(),T xmaxValue = T(),
T yminValue = T(),T ymaxValue = T(),
T zminValue = T(),T zmaxValue = T(),
OctreeNode<T>* top_left_front_Node = NULL,
OctreeNode<T>* top_left_back_Node = NULL,
OctreeNode<T>* top_right_front_Node = NULL,
OctreeNode<T>* top_right_back_Node = NULL,
OctreeNode<T>* bottom_left_front_Node = NULL,
OctreeNode<T>* bottom_left_back_Node = NULL,
OctreeNode<T>* bottom_right_front_Node = NULL,
OctreeNode<T>* bottom_right_back_Node = NULL )
:data(nodeValue),
xmin(xminValue),xmax(xmaxValue),
ymin(yminValue),ymax(ymaxValue),
zmin(zminValue),zmax(zmaxValue),
top_left_front(top_left_front_Node),
top_left_back(top_left_back_Node),
top_right_front(top_right_front_Node),
top_right_back(top_right_back_Node),
bottom_left_front(bottom_left_front_Node),
bottom_left_back(bottom_left_back_Node),
bottom_right_front(bottom_right_front_Node),
bottom_right_back(bottom_right_back_Node){}
};
模板+struct可以么?
还有T nodeValue = T()这样写什么意思?
7 个解决方案
#1
struct中如果有函数成员,编译器会自动作为class处理
T nodeValue = T()表示调用构造函数T()生成T类型变量nodeValue
T nodeValue = T()表示调用构造函数T()生成T类型变量nodeValue
#2
那模板结构中可以有OctreeNode(){};构造函数么?
#3
根据你的说法
data(nodeValue),
xmin(xminValue),xmax(xmaxValue),
ymin(yminValue),ymax(ymaxValue),
zmin(zminValue),zmax(zmaxValue),
这些就是赋值了吧?
#4
T nodeValue = T()
是构造函数的一个参数,它包含一个默认值 = T()。
是构造函数的一个参数,它包含一个默认值 = T()。
#5
不能有OctreeNode(){};函数,因为上面的定义中已包含带默认参数的构造函数(会参数歧义)。
#6
同意。
#7
又是一段变态的代码
#1
struct中如果有函数成员,编译器会自动作为class处理
T nodeValue = T()表示调用构造函数T()生成T类型变量nodeValue
T nodeValue = T()表示调用构造函数T()生成T类型变量nodeValue
#2
那模板结构中可以有OctreeNode(){};构造函数么?
#3
根据你的说法
data(nodeValue),
xmin(xminValue),xmax(xmaxValue),
ymin(yminValue),ymax(ymaxValue),
zmin(zminValue),zmax(zmaxValue),
这些就是赋值了吧?
#4
T nodeValue = T()
是构造函数的一个参数,它包含一个默认值 = T()。
是构造函数的一个参数,它包含一个默认值 = T()。
#5
不能有OctreeNode(){};函数,因为上面的定义中已包含带默认参数的构造函数(会参数歧义)。
#6
同意。
#7
又是一段变态的代码