- 初始化和赋值的区别
在一个构造函数中,ABEntry:ABEntry(const std::string& name,const std::string& address)
{
theName=name;
theAddress=address;
}
这个为赋值语句;
ABEntry:ABEntry(const std::string& name,const std::string& address):theName(name),theAddress(address)
{
}
这个为初始化。
初始化发生于赋值语句之前,当函数调用构造函数时,先给name,address赋设立初值,再对他们设立新值,第一种做法将构造函数的作用浪费了,第二种将直接对name值进行copy构造。对于大多数程序而言,比起先调用default构造函数再调用copy assignment操作符,单只调用一次copy构造函数是比较高效。 - 初始化的重要性
class FileSystem {
public:
std::size_t numDisks() const;
}
extern FileSystem tfs;
class Directory{
public:
Directory{params};
};
Directory::Directory(params)
{
std::size_t disks=tfe.numDisks();
}
Directory tempDir(params);
只有tfe在tempDir之前定义,才能保证程序运行成功。这是不可预知的
C++初始化对象
最新推荐文章于 2024-09-01 08:30:00 发布