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

Обращение к приватному члену класса внутри пространства имён - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести возраст прописью http://www.cyberforum.ru/cpp-beginners/thread393925.html
Помогите решить задачку,вот условие заранее спасибо Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное со-...
C++ Как настроить изначальный код, который открывается при создании нового проекта Объясните пожалуйста, как в Visual C++ 2008 Express настроить изначальный шаблон кода при создании нового проекта. Например, чтоб каждый раз заново не напечатать все то, что я так и так включаю в... http://www.cyberforum.ru/cpp-beginners/thread393911.html
Как использовать указатели при работе с массивами? C++
подскажите пожалуйста как правильно использовать указатели при работе с массивами. Как написать этк программу используя указатели? #include<iostream> using namespace std; const int n = 10; ...
C++ Динамический массив
Подскажите, как создать двумерный массив mxn, пожалуйста!
C++ Массив строк... http://www.cyberforum.ru/cpp-beginners/thread393895.html
Здравствуйте, помогите пожалуйста, дан файл .txt, в нем неизвестное кол-во символьных строк, надо вывести все строки на экран поочередно, не сразу весь файл вывести! на Си.
C++ построение графика f(x)=x^4+3x-20 Дали задание в универе, График из Mathcad'a нужно нарисовать в C, но для такого нужен Visual C или C#, а я такого уже не знаю. Помогите написать программу или дайте толковый самоучитель как оно... подробнее

Показать сообщение отдельно
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
28.11.2011, 16:53
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
#include <iostream>
#include <vector>
#include <string>
 
namespace Pairs
{
    class Name_pairs
    {
            std::vector<std::string> name;
            std::vector<double> age;
    public:
            void read_names(Name_pairs&);
            void read_ages(Name_pairs&);
            void sort(Name_pairs&);
            void print(const Name_pairs&) const;
 
            const std::vector<std::string>& return_names() const
            {
                return name;
            }
            const std::vector<double>& return_ages() const
            {
                return age;
            }
 
            friend std::ostream& operator<< (std::ostream& os, const Pairs::Name_pairs& na);
    };
 
    bool operator==(Name_pairs& lna, Name_pairs& rna);
    bool operator!=(Name_pairs& lna, Name_pairs& rna);
 
}
 
namespace Pairs
{
 
    std::ostream& operator<<(std::ostream& os, const Name_pairs& na)
    {
        for (unsigned int i = 0, end = na.name.size(); i < end; i++)
            os << "Name: " << na.name[i] << "\tAge: " << na.age[i] << std::endl;
        return os;
    }
}
 
int main()
{
        Pairs::Name_pairs mine;
//        mine.read_names(mine);
//        mine.read_ages(mine);
//        mine.print(mine);
//        mine.sort(mine);
//        mine.print(mine);
 
        return 0;
}
чтобы обратиться к приватному члену класса из какой либо функции (или оператора), например func, то надо сделать ее дружественной для этого класса
C++
1
2
3
4
5
6
7
8
9
10
11
class test
{
friend void func();
private:
int value;
};
 
void func(test obj)
{
obj.value = 1;  // ошибки нет
}
вызов других функций закомментил, т.к. не реализованы они у тебя еще.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru