C++ конструторы
ЕслиИсточник информации?
SomeClass obj(...)
есть просто короткая запись
SomeClass obj = SomeClass(...)
Ну и плюс простенькие эксперименты, например так:
#include <iostream>
using namespace std;
class test
{
public:
test(int i)
{
cout<<"test's constructor " << i << endl;
}
test (const test&)
{
cout << "test's copy constructor" << endl;
}
};
int main
{
test t1(5);
test t2 = test(10);
test t3 = t2;
return 0;
}
Выводится:
test's constructor 5
test's constructor 10
test's copy constructor
но это не означает, что эти конструкции эквивалентны
Ты хочешь сказать, что SomeClass obj = Someclass(...) может быть реализовано, как создание безымянного объекта, вызов копирующего конструктора для obj и затем удаление безымянного объекта?
да
![](/images/graemlins/frown.gif)
Нашел место, где это подробно описывается.
Оставить комментарий
erotic
ЕслиSomeClass obj(...)
есть просто короткая запись
SomeClass obj = SomeClass(...
где под троеточием подразумеваются какие-то параметры конструктора, то почему, когда я прячу в приватную зону класса копирующий конструктор, второй вариант не компилируется с ошибкой cannot access private member declared in class SomeClass ?