0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 34
|
||||||
1 | ||||||
Не работает дружественность классов01.06.2012, 23:50. Показов 1137. Ответов 4
Метки нет Все метки)
(
Всем привет, столкнулся с проблемой, не работает дружественность, объявляю вроде все правильно, но что-то идет не так, помогите кто сможет, пожалуйста
Ошибки появляются следующие, в классе Дог функция int CatAge () const { return itsAge; } пишет, что индетификатор itsAge неопределен, хотя раз класс объявлен дружественным данные-члены должны быть доступны для методов-членов так же еще ошибка cout << Barsik.GetWeight (); но здесь в целом и не должно ничего работать, это я от безвыходности попробовал(( использую среду ВизуалСтудио 2010
0
|
01.06.2012, 23:50 | |
Ответы с готовыми решениями:
4
Дружественность классов
Дружественность... |
157 / 157 / 27
Регистрация: 29.03.2012
Сообщений: 418
|
||||||||||||||||
02.06.2012, 00:38 | 2 | |||||||||||||||
а что по вашему должно вернуться из этой функции?
Какое значение? Код бессмыслен. если ее подправить вот так:
Или же itsAge должна быть статической переменной, тогда к ней мы можем обратиться так
1
|
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 34
|
||||||
02.06.2012, 14:18 [ТС] | 3 | |||||
прошу прощения, может я что-то неправильно понял, но какой смысл тогда дружественности класса? насколько я понял из учебников, если объявить один класс дружественным другому, таким образом:
сlass ПервыйКласс { public: friend class ДружественныйКласс то это означает, что ДружественныйКласс имеет теперь полный доступ к любому из членов класса ПервыйКласс, то есть я через функции - члены ДружественныйКласс могу обратиться к переменным-членам ПервыйКласс, что я и пытался сделать в этой проге. я попробывал Ваш вариант, все работает, но проблема в том, что это работает и без объявления дружественности, можно написать код так
я закомментировал объявление дружественности и поправил код как Вы сказали, все заработало,но тут я не удивлен. Другое дело какое это отношение имеет к дружественности?
0
|
В астрале
![]() ![]() 8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
02.06.2012, 14:30 | 4 |
monnzz, Вы можете обратиться к закрытым полям класса Cat из класса Dog, если класс Dog объявлен дружественным классу Cat ( передаете объект класса Cat в функцию член клаccа Dog и обращаетесь к закрытым полям через объект или же можно обратиться к закрытым статическим полям класса Cat).
1
|
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 34
|
|
02.06.2012, 14:40 [ТС] | 5 |
ForEveR спасибо, теперь понял, просто я думал, что у меня происходит расширение и я могу обращаться к данным класса Сat через методы класса Dog напрямую, то есть не зайдействуя объект))
antoha398 Извините, я просто недопонял, что Вы хотели до меня донести))
0
|
02.06.2012, 14:40 | |
Помогаю со студенческими работами здесь
5
Не работает один из классов
Не работает инициализация классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной.
Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
|
Формулы поворота
Igor3D 10.03.2025
Добрый день
Тема
Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости".
x' = x * cos(a) - y * sin(a)
y' = y * cos(a) + x * sin(a)
Как бы Вы их. . .
|
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
|
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
|
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
|
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view.
string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
|
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
|
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет!
Отправлено 19 февраля 2025 года в 17:20:21 UTC
Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home.
Мы официально. . .
|
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
|
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
|