Здравствуйте, Доброжелатель, Вы писали:
AVK>>> B b(A(i),A(i));
AVK>>>
А>>Некорректный код. Ты объявляешь функцию 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)).