c++构造函数、拷贝构造函数等

为了更清晰了解之后的语法格式,在此之前,首先讲讲类成员的初始化

定义一个类:

1
2
3
4
5
6
7
class Fruit               //定义一个类,名字叫Fruit  
{
public:
Fruit(const string &name):Fname(name){}
private:
const string Fname;
}

一般而言,有两种形式的初始化:

1
2
3
4
5
6
7
8
9
10
1
Fruit(const string &name):Fname(name){}
推荐使用此种构造方法,成员变量先初始化,再执行块。在这里先是执行了Fname(name),然后再把string name定义为const。


2
Fruit(const string &name):(){
Fname=name;
}
这里初始化后再对Fname=name进行赋值,则会提示不能给常量赋值的错误

3
注意,在c++中,结构体和类的使用已经没有什么区别,所以结构体成员最好一开始就进行结构体成员初始化。形如:

1
2
3
4
5
6
7
struct Node
{
object data;
Node *next;

Node(const object & d=0,Node *n=NULL):data(d),next(n){}//节点的构造函数
};