Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
zlodeyxgm
3 / 3 / 4
Регистрация: 08.09.2015
Сообщений: 64
1

Дружественный класс или функция

16.04.2016, 15:14. Просмотров 238. Ответов 2
Метки нет (Все метки)

Есть 2 класса. Допустим:
класс 1: Товар
класс 2:Клиент
В товаре есть приват переменные : название и цена.
В Клиенте есть Кол-во купленного товара.

Поехали:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Client
{
public:
    void Init(int q);
    double F2(Tovar a);
private:
    int x1;
};
 
class Tovar
{
public:
    void Init(char q, double w, int e);
    friend double Client::F2(Tovar a);/////////ТУТ!
private:
    char name[20];
    double price;
};
 
double Client::F2(Tovar a)
{
    double res=0;
    res = a.price * x1; 
    return res;
}
Сишка пишет, что нет доступа к Приват переменной, но я же сделал функцию дружественной, почему он не дает ей доступ? Подскажите плз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2016, 15:14
Ответы с готовыми решениями:

Можно ли как то запустить функцию или класс которая находится ниже чем исполняемая функция или класс?
Можно ли как то запустить функцию или класс которая находится ниже чем исполняемая функция или...

Дружественный класс
#include <iostream> class X { friend class Y; int a; int b; int y; int getA()...

дружественный класс
доброго дня. есть вопрос. на картинке видно что шаблон называется class map. для чего в его тексте...

Дружественный шаблонный класс
Доброго времени суток. Есть пример из книги (создание списка). Вот код: #ifndef LISTND_H...

Произвольный дружественный шаблонный класс
Добрый день. Не могу понять, как объявить дружественный шаблонный класс. Имеем некий шаблонный...

2
DrOffset
8142 / 4723 / 1154
Регистрация: 30.01.2014
Сообщений: 7,693
16.04.2016, 16:08 2
Цитата Сообщение от zlodeyxgm Посмотреть сообщение
нет доступа к Приват переменной
Код выглядит рабочим.
Есть подозрение (телепатическое), что у тебя перед классом Client забыто предварительное объявление.
C++
1
2
3
4
5
6
7
8
9
10
class Tovar; // это
 
class Client
{
public:
    void Init(int q);
    double F2(Tovar a);
private:
    int x1;
};
Если конечно это и правда тот код, который ты у себя компилируешь.

Не по теме:

А то частенько тут выкладывают одно, а компилируют совсем другое, а потом удивляются почему советы не помогают :)
Но это так, мысли вслух.

1
zlodeyxgm
3 / 3 / 4
Регистрация: 08.09.2015
Сообщений: 64
16.04.2016, 16:37  [ТС] 3
Спасибо. Именно это я не сделал. Не так давно начал разбираться в классах и еще не знаю кучи тонкостей) Огромное спасибо вам)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2016, 16:37

Передача параметра в дружественный класс
Не получается передать значение в дружественный класс #include <iostream> using namespace std;...

Дружественный класс (код внутри)
вот я не знаю как сделать из этого дружественный класс, все тоже самое только с дружественным и ...

Нужно удалить класс Rectangle1 дружественный к классу Rectangle
#include <iostream> #include <math.h> #include <conio.h> using namespace std; struct Coords{...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru