2015-08-04 2 views
-1

Есть много вопросов о вопросах, связанных с темой, но я не могу найти тот, который точно решает мою проблему.C++ copy-constructor vs оператор присваивания

Дано:

std::vector<int> a, b; 

чем разница между следующими двумя случаями:

std::vector<int> c(a); // case c(a) 
std::vector<int> d = a; // case d=a 

, а также позже:

c(b); // c(b): does this make sense? 
c = b; // or is this better? and if so, why? 
+0

Что такое –

+0

Итак, ответ заключается в том, что копирование и оптимизация возвращаемого значения являются ключами для оценки, если я буду использовать c (b) или c = b ?! Я никогда не слышал этих терминов раньше. Как, черт возьми, я должен найти это иначе, если не спрошу? –

+0

Кто сказал, что вы были? –

ответ

-2

С (б) лучший способ ... Это вызовет конструктор, который означает, что ваш объект будет создан, созданный до того, как вы его начнете использовать.

Лучший способ понять это, если вы создаете const-объект c-второго подхода, даст ошибку, говорящий, что объект только для чтения, в то время как первый будет работать.

+4

ваш ответ не имеет смысла –

+0

Оптимизация компилятора появится в изображении, когда мы рассмотрим сценарий, который я упоминаю – Swapnil

Смежные вопросы