Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zlodeyxgm
0 / 0 / 1
Регистрация: 08.09.2015
Сообщений: 43
#1

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

16.04.2016, 15:14. Просмотров 186. Ответов 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;
}
Сишка пишет, что нет доступа к Приват переменной, но я же сделал функцию дружественной, почему он не дает ей доступ? Подскажите плз.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2016, 15:14     Дружественный класс или функция
Посмотрите здесь:

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

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

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

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

Произвольный дружественный шаблонный класс - C++
Добрый день. Не могу понять, как объявить дружественный шаблонный класс. Имеем некий шаблонный класс:template<typename T, typename U> ...

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

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

Класс функция(линейная или квадратичная) - C++
Описать класс Математическая функция.Функция может быть линейной y=ax+b или квадратичной y=a*x*x+bx+c. Данные...

Удобная функция или класс для получения MD5 - C++
Привет! Не подскажите удобную протестированную функцию или класс для получения md5 строки? Искал в boost, но что-то пока не обнаружил....

Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор. - C++
Здравствуйте! Пишу аналог STL vector. Возникают следующие ошибки: source.cpp:11: error: expected initializer before ‘operator’ ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
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;
};
Если конечно это и правда тот код, который ты у себя компилируешь.

Не по теме:

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

zlodeyxgm
0 / 0 / 1
Регистрация: 08.09.2015
Сообщений: 43
16.04.2016, 16:37  [ТС]     Дружественный класс или функция #3
Спасибо. Именно это я не сделал. Не так давно начал разбираться в классах и еще не знаю кучи тонкостей) Огромное спасибо вам)
Ответ Создать тему
Опции темы

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