红桃J

用心写好每行完美的代码,远比写一堆更有价值

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 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。

例子就像上面那个。

有一个非常重要的说明就是:结构体和类不同点  结构体作为参数时是复制内容到新的参数中的,而类是引用!!!!!

posted on 2015-06-04 16:11  红桃J  阅读(501)  评论(0编辑  收藏  举报