这段代码工作正常 . 我没有调用一个setter函数,而是使用了构造函数,而且我多次为一个对象调用构造函数 . 是不是只为一个对象调用一次构造函数?这样做是对还是错?
ifstream myfile;
myfile.open("phones.txt");
DirectoryEntry *TelephoneDirectory = new DirectoryEntry[size]; // default constructor
for (int i = 0; i < size; i++)
{
TelephoneDirectory[i] = DirectoryEntry(myfile); // parameterized constructor
}
myfile.close();
1 回答
不,你不是多次调用构造函数 . 您的代码非常类似于:
你创建
object
,调用默认的ctor然后创建临时并将其分配给object
. 对于object
,没有多次调用ctor . 所以你的代码是完全有效的(假设ctors和赋值运算符是有效的),但如果你做了你真正想要的东西取决于你,因为你似乎不明白这里发生了什么 .