@DjTolib

Что печатает программа и почему?

#include <iostream>
using namespace std;
struct  A{
    A(){cout<<"A";}
    A(A&){cout<<"B";}
    virtual void f(){cout<<"C";}

};
int main() {
    A a[10];
    std::cout<<'\n';
    for(auto x: a)
    {
        x.f();
    }
    
}

Нужны обоснования, ссылка на стандарт, например.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Программа печатает
AAAAAAAAAA
BCBCBCBCBCBCBCBCBCBC

Тут создается 10 структур типа A и 10 раз вызывается конструктор типа A().
A a[10];

Тут вызывается конструктор копирования типа A(A&) для каждого элемента из массива a[10].
for(auto x: a)

Тут вызывается функция f() типа A
x.f();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы