1 typedef struct Node
2 {
3 int val;
4 string name;
5 bool operator < (const Node &right) const
6 {
7 return val < right.val;
8 }
9 Node(string name, int val) :name(name), val(val){}
10 Node(){}
11 }Node;
结构体构造函数:
上面的代码中的构造函数有两个,第10行的为无参数的构造函数,如果去掉第10行,那么Node node这种定义将不被识别;但如果9,10 行都不写就会自动有一个无参构造函数。
9行的构造函数还可以写成这种形式:
Node(string cname, int cval)
{
name = cname;
val = cval;
}
运算符重载函数:
上述代码中实现的是<号运算符的重载,关于运算符重载,这个时候做好const 引用的应用就可以了有时候还需对运算符函数结果加const。
例子就像上面那个。
有一个非常重要的说明就是:结构体和类不同点 结构体作为参数时是复制内容到新的参数中的,而类是引用!!!!!