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

Объявление функции другом класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не выводит список на экран http://www.cyberforum.ru/cpp-beginners/thread647209.html
Здравствуйте! Проблема вот в чем: при запуске программы ошибок не возникает, только мигнет черное окошко и все. Отлаживая программу выяснил, что проблемма находится тут, операция присваивания не происходит, пишет невозможно вычислить выражение: int n = sizeof(books); for (int i = 0; i < n; i++) { last = new(record); (*last).book.author = books.author; (*last).book.title = books.title;...
C++ найти точку вводится N- количество домов и К- количество дорог. дома пронумерованы от 1 до N. каждая дорога определяется тройкой чисел- двумя номерами домов- концов дороги и длиной дороги. в каждрм доме живет по одному человеку. найти точку- место встречи всех людей, от которой суммарное расстояние до всех домов будет минимальным. если точка лежит на дороге, то указать номера домов-концов этой дороги и... http://www.cyberforum.ru/cpp-beginners/thread647194.html
Блок схема Челночной сортировки C++
Очень нужна блок схема Челночной сортировки!!!
C++ заданы координаты сторон треугольника
если треугольник существует, то найти его площадь. решить задачу с использованием функций
C++ дано число в К-ичной системе счисления http://www.cyberforum.ru/cpp-beginners/thread647185.html
an an-1 ...а0 (К<=36). найти остаток от деления его на m. числа К,n,m, как и остаток от деления на m, представляются в десятичной системе счисления.
C++ Программа выдает не правильный результат Задание: Задана прямоугольная матрица размером N x M вещественных 8-ми байтовых чисел и вектор B(M) вещественных 8-ми байтовых чисел. Написать прогу формирующую новую матрицу из исходной путем замены j-ой строки матрицы на элементы данного вектрора B. Помогите пожалуйста найти шибку: #include <stdio.h> #include <conio.h> int main() { int i, j, m, n, k; double **A, *b; подробнее

Показать сообщение отдельно
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
05.09.2012, 20:54     Объявление функции другом класса
Объявил функцию другом класса и в функции обращаюсь к закрытым данным класса,но почему-то не получается из-за того,что нет доступа к ним,хотя в другой функции-друге класса всё нормально
вот
класс
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class Subscriber
{
friend class Call;
friend class Date;
 
friend void MainMenu(vector<Subscriber> &subscribers);
friend bool Savedata(vector<Subscriber> &subscribers);
 
public:
Subscriber
(
vector<int> subscriber_number,
string subscriber,
Date LastAddCost
);
 
Subscriber(const Subscriber &copySubscriber);
 
//функции для работы с абонентом
//----------------
bool AddNewCall();
void PrintCalls();
bool DeleteCall();
bool SaveCalls();
bool LoadCalls();
//----------------
 
 
//функции для проверки введённых данных
//-----------------------------------------------------
bool CorrectNumber(const vector<int> &number);
bool CorrectDate(const Date &start,const Date &finish);
//-----------------------------------------------------
 
bool SetLastCostAdd();
 
//функции для определения параметров звонка
//-----------------------------------------
bool IsInsideHomeNetwork(const vector<int> &number);
Date CalculateFreeMinutes
(
const Date &call_start,//
bool IsOutgoing,//
bool inside_home_network,//
const Date &duration//
);
//-----------------------------------------
 
 
private:
vector<int> _subscriber_number;//
string _subscriber;//
 
vector<Call> _calls;//
 
Date LastCreditAdd;//
Date LastWeekend;//
 
Date free_minutes_in_home_network;//
Date free_minutes_on_weekend;//
 
static double _connection_fee;//
static double _cost_inside_home_network;//
static double _cost_outside_home_network;//
static vector<int> _home_network_prefix_1;//
static vector<int> _home_network_prefix_2;//
static vector<int> _home_network_prefix_3;//
static vector<int> _home_network_prefix_4;//
};

вот
функция
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
26
27
28
29
30
31
32
33
34
35
36
bool SaveData(vector<Subscriber> &subscribers)
{
    if(access("C:\\Subscribers\\list.txt",0) == -1)
    {
        CreateDirectory(L"C:\\Subscribers\\",NULL);
 
        fstream SubscribersList("C:\\Subscribers\\list.txt",ios::out | ios::binary);
 
        if(!SubscribersList.is_open())
            return false;
 
        for(unsigned int i = 0;i < subscribers.size();i++)
        {
            int number[10];
 
            vector<int> _number(subscribers.at(i)._subscriber_number);
 
            for(int j = 0; j < 10;j++)
            {
                number[i] = _number.at(j);
            }
 
            SubscribersList.write(reinterpret_cast<char *>(),10*sizeof(int));
        }
    }
    else
    {
 
    }
 
 
 
 
 
 
}


Добавлено через 2 часа 38 минут
Цитата Сообщение от alexey31415 Посмотреть сообщение
_subscriber_number);
забыл указать,что я не могу получить доступ к этому элементу(16 строка)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru