c++中 class与struct之间的区别
c++中保留了c语言的struct关键字,并赋予其新功能。在c中,struct只能包含成员变量,没有成员函数,而在cpp中,可以同时包含二者。在c++中而这基本通用,细节红色那个有所不同。
- 使用class时,类众多成员默认是private属性的,而使用struct时,机构体中的成员默认时public属性的。
- class继承默认是private继承,而struct默认继承是public继承。
- class可以使用模板,而struct不可以。
- 结构体不能只写有参构造函数,如果只写了有参构造将会出现无法初始化的错误。
实例代码
struct GridNode
{
int id;
// 1--> open set, -1 --> closed set
Eigen::Vector3d coord;
Eigen::Vector3i dir; // direction of expanding, only for JPS
Eigen::Vector3i index;
double gScore, fScore;
GridNodePtr cameFrom;
std::multimap<double, GridNodePtr>::iterator nodeMapIt;
GridNode(Eigen::Vector3i _index, Eigen::Vector3d _coord){
id = 0;
index = _index;
coord = _coord;
dir = Eigen::Vector3i::Zero();
gScore = inf;
fScore = inf;
cameFrom = NULL;
}
GridNode(){};
~GridNode(){};
};
定义节点的结构体,有参构造并不单独出现。
参考
http://c.biancheng.net/view/2235.html
https://www.cnblogs.com/wlw-x/p/11566191.html