Функция не видит поля дружественного класса с++

109
05 мая 2021, 08:20
class getpoint;
class point
{
private:
    int a;
    int b;
public:
    point(int a, int b)
    {
        this->a = a;
        this->b = b;
    }
    friend void getpoint::show(point& object);
};
class getpoint
{
public:
    void show(point& object)
    {
        cout << "A = " << object.a << endl << "B = " << object.b;
    }
};

В классе getpoint есть функция show, её я обьявил как дружественную для класса point, но почему-то в строке cout << "A = " << object.a << endl << "B = " << object.b; VS2019 выдаёт ошибку и пишет, что нет доступа к члену point.a и point.b.Не могу понять почему компилятор не видит их, если я обьявил функцию как дружественную для класса point.

Answer 1

Разместите в другом порядке:

class point;
class getpoint
{
public:
    void show(point& object);
};
class point
{
private:
    int a;
    int b;
public:
    point(int a, int b)
    {
        this->a = a;
        this->b = b;
    }
    friend void getpoint::show(point& object);
};

void getpoint::show(point& object)
{
    cout << "A = " << object.a << endl << "B = " << object.b;
}
READ ALSO
Создать массив в функции, используя параметр

Создать массив в функции, используя параметр

В данном примере при попытке создания массива output, возникает ошибка под new: «для агрегатного объекта требуется инициализация

77
Segmentation Fault при завершении скрипта на lua

Segmentation Fault при завершении скрипта на lua

Написал небольшой модуль для lua51 (в качестве эксперимента) на с++ (понятное дело функции экспортированы в C)

85
Запись в файл для всех файлов проекта

Запись в файл для всех файлов проекта

Друзья, помогите с задачейКак сделать так, чтобы запись в файл производилась из всех файлов проекта(например

85
Как сделать добавление товара в корзину!

Как сделать добавление товара в корзину!

Есть у меня кнопка на ней ссылка которая передаёт значения!

91