40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
||||||
1 | ||||||
Обращение к приватному члену класса внутри пространства имён28.11.2011, 16:34. Показов 3128. Ответов 19
Метки нет (Все метки)
Здравствуйте.
Вот у меня есть код:
0
|
28.11.2011, 16:34 | |
Ответы с готовыми решениями:
19
Обращение к приватному полю класса Обращение потока к функции-члену класса Доступ к приватному члену через нестатическую ссылку Дружественная функция, объявлённая ранее вне пространства имён класса -> error LNK2019 в Visual Studio 2012 |
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|||||||||||
28.11.2011, 16:53 | 3 | ||||||||||
1
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|||||||||||
28.11.2011, 17:07 [ТС] | 4 | ||||||||||
Да . Но теперь два других вопроса:
в теле
И как мне вывести в цикле вектор? Добавлено через 10 минут Вобщем, вот вся программа, мне не жалко. Помогите с одной функцией:
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
28.11.2011, 17:08 | 5 |
1
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 17:10 [ТС] | 6 |
Но там она реализована внутри класса, да? Мне нужно, чтобы она была реализована вне класса внутри пространства имён. Так возможно вообще?
0
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 17:17 [ТС] | 8 |
Спасибо, тупанул, всё работает
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
28.11.2011, 17:19 | 9 |
дружественные функции по определению вне класса, даже если реализованы внутри него
0
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 17:28 [ТС] | 10 |
0
|
Заблокирован
|
|
28.11.2011, 17:32 | 11 |
Плясать нужно не от формального дееспособного кода.
А от конкретной задачи, которую этот код решает. Можно конечно исследовать сам код, и догадаться по его поведению, какую задачу он решает. Но по моему проще, просто спросить об этом у автора. М? Автор до этого момента как то не озаботился сообщить, что должен делать его код.
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
|
28.11.2011, 17:35 | 12 |
можно сделать чтобы функций не напрямую обращалась к полю, а вызывала какой нить метод, типо get_name() и с ним работала уже
1
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 17:49 [ТС] | 13 |
Два метода на ввод векторов, которые принадлежат классу Name_pairs. Одна print, которую я как раз и хочу заменить на ostream& operator<<. sort() - сортирует класс по именам, с привязкой возрастов. И ещё две, которые просто возвращают вектора name и age. Но это абсолютно не важно уже. Всё что я хотел выяснить, это как можно было обойтись без friend'ов.
0
|
Заблокирован
|
|||||||||||
28.11.2011, 18:22 | 14 | ||||||||||
SleepMaster,
У вас класс спроектирован некорректно. Расммотрим функцию
Но я понимаю, что такой дизайн вы выбрали, потому что не понимаете, как работуют нестатические функции члены. На примере этой функции, я покажу, как она должна быть определена
2
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 18:49 [ТС] | 15 |
Хорошо. Объясню, как я это понимаю:
friend используется, если мы хотим предоставить обычной функции доступ к закрытым и защищенным членам класса. Однако, внутри friend'овской функции нельзя использовать static и extern, отсюда и ограничение на использование.
0
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|||||||||||
28.11.2011, 19:03 [ТС] | 17 | ||||||||||
Тогда вопрос:
Как обойтись без frienda в этом коде
operator<<
0
|
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
|
||||||
28.11.2011, 19:07 | 18 | |||||
1
|
40 / 40 / 7
Регистрация: 26.11.2011
Сообщений: 80
|
|
28.11.2011, 19:18 [ТС] | 20 |
sandye51, Благодарю. Считаю, что тему можно закрыть.
0
|
28.11.2011, 19:18 | |
28.11.2011, 19:18 | |
Помогаю со студенческими работами здесь
20
Обращение к переменным одного метода из другого внутри класса Обращение к члену структуры Обращение к члену protected Пространства имён с++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |