关于constructor函数的定义
class Request
{
private:
const int no;
static unsigned int lastNo;
Accomodation *accomodation;
Request *next;
public:
Request(Accomodation *);
~Request();
int get_no();
Request *get_next();
Request *set_next(Request &r);
float get_price();
void print();
};
unsigned int Request::lastNo = 0;
Request::Request(Accomodation *a) : accomodation(a), next(nullptr), no(++lastNo)
{
lastNo = no;
}
以上这个构造函数的定义和下面这个构造函数的定义有何区别,为什么下面这种方式无法运行,且:后面初始化部分难道不是一种函数思维去进行吗?
Request::Request(Accomodation *a)
{
accomodation = a;
next = nullptr;
no = ++lastNo;
}
非常感谢各位解答!
你问的这个问题非常好,这个是C++ 构造过程最重要的性能问题。
在初始化列表中的变量初始化,和构造函数中的变量初始化,完全不是一个概念。
初始化列表中那叫初始化,构造函数中,那叫赋值
你问的这个问题非常好,这个是C++ 构造过程最重要的性能问题。
在初始化列表中的变量初始化,和构造函数中的变量初始化,完全不是一个概念。
初始化列表中那叫初始化,构造函数中,那叫赋值