Рубрики

C ++ | ключевое слово друга | вопрос 2

Прогнозируем вывод следующей программы.

#include <iostream>

using namespace std;

  

class B;

class A {

    int a;

public:

    A():a(0) { }

    void show(A& x, B& y);

};

  

class B {

private:

    int b;

public:

    B():b(0) { }

    friend void A::show(A& x, B& y);

};

  

void A::show(A& x, B& y) {

    x.a = 10;

    cout << "A::a=" << x.a << " B::b=" << y.b;

}

  

int main() {

    A a;

    B b;

    a.show(a,b);

    return 0;

}

(A) Ошибка компилятора
(B) A :: a = 10 B :: b = 0
(C) A :: a = 0 B :: b = 0

Ответ: (Б)
Объяснение: Это простая программа, в которой функция класса A объявлена другом класса B.

Поскольку show () является другом, он может получить доступ к личным данным членов B.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | ключевое слово друга | вопрос 2

0.00 (0%) 0 votes