Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужно написать два класса,в каждом из которых имеется функция,получающая указатель на объект другого класса.

83K
09 июля 2012 года
Denque
3 / / 09.07.2012
#include <iostream>
#include <cstdlib>
using namespace std;

class Y;

class X
{
int z;
void gpy(Y* z);
friend void Y::gpx(X* z); // пишет , что класс Y не определён , хотя прототип есть...
};

class Y
{
int z;
void gpx(X* z);
friend void X::gpy(Y* z);
};

void X::gpy(Y* z)
{
cout << &z;
}

void Y::gpx(X* z)
{
cout << &z;
}

int main()
{
Y sy;
X sx;
sx.gpy(&(sy.z)); // тут тоже ошибка , возможно я не правильно передал аргумент , с точки зрения синтаксиса
sy.gpx(&(sx.z));
cin.get();
return 0;
}
P.S. Надеюсь код не "грязный" , не могу разобраться в чём моя ошибка , заранее спасибо за отзывчивость!
2.1K
09 июля 2012 года
disputant
95 / / 28.05.2007
Тип того, что хотите передавать :)
Если вы хотели передавать указатель на член z - то очевидно, что это int*...
2.1K
09 июля 2012 года
disputant
95 / / 28.05.2007
По первому - тут можно сделать другом не функцию, а класс целиком (friend class Y;).

В sx.gpy(&sy.z)) мне видятся 2 ошибки:

1. gpy() - private, так что вы не имеете права вызывать ее в main().
2. gpy() получает указатель на Y, а вы передаете указатель на член в Y...
83K
09 июля 2012 года
Denque
3 / / 09.07.2012
Цитата: disputant
По первому - тут можно сделать другом не функцию, а класс целиком (friend class Y;).

В sx.gpy(&sy.z)) мне видятся 2 ошибки:

1. gpy() - private, так что вы не имеете права вызывать ее в main().
2. gpy() получает указатель на Y, а вы передаете указатель на член в Y...



Хорошо,а подскажите,пожалуйста,какой тип передаваемого аргумента мне объявить,чтобы функция получала (уже открытый) член другого класса?

83K
10 июля 2012 года
Denque
3 / / 09.07.2012
Спасибо огромное,очевидное решение,просто смотрел по самоучителю,а там был объявлен такой тип,я даже не ожидал ошибки там)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог