Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Anton V. Kolotaev, Вы писали:
AVK>>
AVK>>error: duplicate parameter name
AVK>> B b(A(i),A(i));
AVK>>
AVK>>Это глюк компилятора или просто некорректный код?
А>Некорректный код. Ты объявляешь функцию b, принимающую два одноименных параметра.
А при чем здесь функция? Здесь объявляется переменная типа B.
Мой компиллятор вообще выдает
error C2086: 'i' : redefinition
Я чего-то совсем ничего не понимаю... На мой взгляд все корректно.
Не все в этом мире можно выразить с помощью нулей и единиц...
Re[3]: B b(A(i),A(i)) : error: duplicate parameter name :(
А>>Некорректный код. Ты объявляешь функцию b, принимающую два одноименных параметра.
Д>А при чем здесь функция? Здесь объявляется переменная типа B. Д>Мой компиллятор вообще выдает Д>error C2086: 'i' : redefinition Д>Я чего-то совсем ничего не понимаю... На мой взгляд все корректно.
Этот код эквивалентен следующему
B b(A i, A i);
что рассмаиривается компилятором как объявление функции. Ошибку он выдает потому, что два аргумента названы одинаково. Если написать B b(A(i),A(j)), это будет корректное объявление функции, а скажем B b(A(i),A(0)) — конструирование объекта b типа B значением (A(i),A(0)).
Re[3]: B b(A(i),A(i)) : error: duplicate parameter name :(
Здравствуйте, Anton V. Kolotaev, Вы писали:
AVK>Здравствуйте, Доброжелатель, Вы писали:
AVK>
AVK>>>> B b(A(i),A(i));
AVK>>>>
А>>>Некорректный код. Ты объявляешь функцию b, принимающую два одноименных параметра.
Д>>А при чем здесь функция? Здесь объявляется переменная типа B. Д>>Мой компиллятор вообще выдает Д>>error C2086: 'i' : redefinition Д>>Я чего-то совсем ничего не понимаю... На мой взгляд все корректно.
AVK>Этот код эквивалентен следующему AVK>
AVK> B b(A i, A i);
AVK>
AVK>что рассмаиривается компилятором как объявление функции. Ошибку он выдает потому, что два аргумента названы одинаково. Если написать B b(A(i),A(j)), это будет корректное объявление функции, а скажем B b(A(i),A(0)) — конструирование объекта b типа B значением (A(i),A(0)).
Ну да... Согласно Страуструпу "все, что можно принять за объявление, является объявлением..."
Не все в этом мире можно выразить с помощью нулей и единиц...
Re: B b(A(i),A(i)) : error: duplicate parameter name :(