6、造函数。通常直接初始化和复制初始化仅在低级别上存在差异。然而,对于不支持复制的类型,或者使用非 explicit 构造函数(第 12.4.4 节)的进修,它们有本质区别: ifstream file1("filename"); // ok: direct initialization ifstream file2 = "filename"; // error: copy constructor is private // This initialization is okay only if // the Sales_item(con
7、st string&) constructor is not explicit Sales_item item = string("9-999-99999-9");file1 的初始化是正确的。ifstream 类定义了一个可用 C 风格字符串调用的构造函数,使用该构造函数初始化 file1。看上去等效的 file2 初始化使用复制初始化,但该定义不正确。由于不能复制 IO 类型的对象(第 8.1 节),所以不能对那些类型的对象使用复制初始化。item 的初始化是否正确,取决于正在使用哪个版本的 Sales_item 类。某些版本将参数为一个 strin