4 / 4 / 4
Регистрация: 08.09.2015
Сообщений: 76
1

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

16.04.2016, 15:14. Показов 771. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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
15270 / 8237 / 1993
Регистрация: 30.01.2014
Сообщений: 14,025
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
4 / 4 / 4
Регистрация: 08.09.2015
Сообщений: 76
16.04.2016, 16:37  [ТС] 3
Спасибо. Именно это я не сделал. Не так давно начал разбираться в классах и еще не знаю кучи тонкостей) Огромное спасибо вам)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
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 - 2021, vBulletin Solutions, Inc.