Вопрос о C++ о конструкторе по умолчанию [дубликат]

Попробуйте этот код

const initial = [
  {name: 'a', times: 40, other: 50},
  {name: 'b', times: 10, other: 15},
  {name: 'c', times: 15, other: 12}
];

const toBeMerged = [
  {name: 'a', times: 45, other: 30},
  {name: 'c', times: 10, other: 10},
  {name: 'd', times: 23, other: 10}
];

//console.log(initial);

function arrayUnique(array) {
    var a = array.concat();
    for(var i=0; i<a.length; ++i) {
        for(var j=i+1; j<a.length; ++j) {
            if(a[i].name === a[j].name)
            {
                a[i].times +=a[j].times;
                a[i].other +=a[j].other;
                a.splice(j--, 1);
            }
        }
    }

    return a;
}


    // Merges both arrays and gets unique items
var array = arrayUnique(initial.concat(toBeMerged));
console.log(array);

5
задан codelogic 14 January 2009 в 19:30
поделиться

4 ответа

В настоящее время Вы пытаетесь назвать конструктора по умолчанию как так.

Example ex();

Это на самом деле не называет конструктора по умолчанию. Вместо этого Вы определяете прототипа функции с Примером типа возврата и не берете параметров. Для вызова конструктора по умолчанию опустите ()

Example ex;
16
ответ дан 18 December 2019 в 05:44
поделиться

Это объявляет прототипа функции для названной функции ex, возврат Example! Вы не объявляете и инициализируете переменную здесь.

8
ответ дан 18 December 2019 в 05:44
поделиться

Это даже компилирует? Так или иначе посмотрите эту связанную тему.

4
ответ дан 18 December 2019 в 05:44
поделиться

Как был отмечен Example ex(); объявляет прототипа функции. Не, что любой ожидал бы. Эта бородавка C++ будет зафиксирована новым C++ 0x стандарт. В будущем предпочтительный синтаксис будет Example ex{};. Новая универсальная конструкция имеет много других хороших функций, посмотрите больше здесь.

2
ответ дан 18 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: