Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа для расчета радиостанций День добрый. Помогите написать программу для учета 3х радиостанций и человека стоящего в центре. На С. На рисунке 1,2 и 3 радиостанции, 4 человек. Программа на С. Параметры радиостанций: координаты,дальность действия. Установить возможность связи 2(3-х) абонентов с заданными координатами, а также ближайшей к ним станции. https://www.cyberforum.ru/ cpp-beginners/ thread40126.html C++ Работа со списками (нужны комментарии)
#include <stdio.h> #include <conio.h> struct Telem { int inf; //INFORM ELEMENT Telem *link; // ykazatelb na sledyioshii element } *begL, *endL; //=================================== ============================= // dobavlenie v nachalo
C++ графика в BC31 При инициализации графики я пользовался : int gdriver=DETECT,gmode; initgraph(&gdriver, &gmode, "C\BORLANDS\BGI\"); И у меня возник вопрос: Как инициализировать графику чтоб прога шла через .exe, и допустим если С++ не установлен на компе!! https://www.cyberforum.ru/ cpp-beginners/ thread40122.html C++ Убедительная просьба помочь... https://www.cyberforum.ru/ cpp-beginners/ thread40121.html
Ув. программисты, помогите нубу в Borland C, пожалуйста!.. Есть 2 задания, не могу никак написать... Уже облазил весь форум почти... Всё равно что-то неправильно =( 1. Постановка задачи По индивидуальному заданию создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции. Предусмотреть об¬работку ошибок...
Посчитать длительность в секундах после того как График начинает убывать C++
Ну вот собственно в чем проблема: По идее программа должна посчитать длительность в секундах после того как График начинает убывать после Uout=7.77(это максимум) и до конца этого графика. Подсчитав у меня вышло 1.5 секунды. Эта программа считает только до того как график доходит до экстремума Uout=7.77. дальше программа начинает считать погрешность до тех пор пока не дойдет до E=0.1, но это...
C++ Пара простеньких заданий Добрый день.Я хотел бы обратиться с просьбой помочь мне с проблемой.Я не могу выполнить два простеньких задания так как я в С не очень силён.Могли бы вы помочь мне в этом. 1. Постановка задачи Для разряженной матрицы целых чисел в соответствии с индивидуальным заданием создать модуль доступа к ней, у котором обеспечить экономию памяти при размещении данных. Индивидуальные задания Все нулевые... https://www.cyberforum.ru/ cpp-beginners/ thread40088.html
C++ Програма макроподстановок в assemler ной програме Добрый день,есть такая задача - написать програму для макроподстановок в асемблерной програме. Тоесть нужно открыть файл *.asm найти тело макроса,и дописать его в основной код програмы,там где он вызывается заменив формальные параметры на фактические соответственно. Это курсовой проэкт,может быть написан на с/с++ , желательно еще пару функций на асемблере сделать(скомпилировав коды) но... https://www.cyberforum.ru/ cpp-beginners/ thread40076.html Арифметическое выражение C++
В записи арифметического выражения используются круглые, квадратные и фигурные скобки. Проверить, верно ли расставлены скобки, соответствие открытых и закрытых скобок. Входные данные - строка символов.
C++ Двумерный массив https://www.cyberforum.ru/ cpp-beginners/ thread40045.html
Собственно помогите решить задачи на двумерный масив пжл) Дан массив A. Известно что среди его элементов два и только 2 равны, вывести их индексы. Вот идеи: #include <iostream> using namespace std; int main() {
C++ Не могу разобраться с матрицей В заданной матрице A(N,M) (N<10, M<20) в каждом столбце поменять местами максимальный и минимальный элементы. Матрицу напечатать Заранее спасибо! https://www.cyberforum.ru/ cpp-beginners/ thread40044.html
не получается исправить ошибку C++
Здравствуйте Сочту за великое дело помочь человеку, который не умеет работать со стеками. Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со...
C++ С заглавной буквы написать только фамилии и первые слова в предложениях По программированию в универе задали делать лабу. Задание: Ввести список фамилий студентов в группе, запросить связный текст, состоящий из нескольких предложений, где используются ранее введенные фамилии. Откорректировать введенный текст так, чтобы с заглавной буквы были написаны только фамилии и первые слова в предложениях. кое-что я уже сделал, но у меня просто нету идей как сделать... https://www.cyberforum.ru/ cpp-beginners/ thread40022.html
49 / 10 / 3
Регистрация: 20.09.2009
Сообщений: 263
20.06.2010, 18:32 0

ООП Дружественные Функции, Операторы. - C++ - Ответ 816810

20.06.2010, 18:32. Показов 5134. Ответов 3
Метки (Все метки)

Ответ

Вопрос о дружественных функциях.
Дружественные отношения не наследуются. Дружественные функции не имеют доступа к членам производного класса, чьи базовые классы содержали объявления этих функций.
Цитата отсюда, в книге прочитал примерно то же самое.
Но почему тогда следующий код работает исправно (Количество комнат удваивается)?
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
#include <vcl>
#pragma hdrstop
#include <iostream>
 
using namespace std;
 
class building {
    int rooms, floors, area;
    public: void set_rooms (int num);
            int get_rooms ();
            friend int mult_two (building b1);
 
};
 
//Производный класс.
class house: public building {
    int bedrooms, baths;
    public: void set_bedrooms (int num);
            int get_bedrooms ();
};
 
void building::set_rooms(int num) {
    rooms=num;
}
 
void house::set_bedrooms(int num) {
    bedrooms=num;
}
 
int house::get_bedrooms() {
    return bedrooms;
}
 
int building::get_rooms() {
    return rooms;
}
 
int mult_two (building b1) {
    return 2*b1.rooms;
}
//---------------------------------------------------------------------------
 
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
    system ("title Temp");
    building b;
    b.set_rooms(25);
    cout <<mult_two (b)<<'\n';
    house h2;
    h2.set_rooms(15);
    cout <<mult_two (h2)<<'\n';
    system ("pause");
    return 0;
}
//---------------------------------------------------------------------------
Добавлено через 12 минут
Догадываюсь, но не уверен. "Дети" наследуют переменные от своих "родителей". Дружественные функции и имеют доступ к этим унаследованным переменным (int rooms, floors, area в данном случае), но не имеют доступа к собственным переменным "детей" (int bedrooms, baths).
Прав ли я?

Вернуться к обсуждению:
ООП Дружественные Функции, Операторы. C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2010, 18:32
Готовые ответы и решения:

Дружественные бинарные операторы
//прототипы внутри класса friend bool operator==(const Polynomial&amp;, const Polynomial&amp;);...

Дружественные шаблонные операторы + и -
Здравствуйте. Возник вопрос по шаблонным классам. Вот сам класс: template &lt;typename type &gt;...

Дружественные функции. Наследование. Перегрузка функции
Здравствуйте, у меня проблема Не знаю куда Вставить имеющийся код(В какую строчку или строчки...

Дружественные функции
С дружественными классами разобрался, спасибо. А теперь ф-ции. Киньте пожалуста простой пример:...

3
20.06.2010, 18:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2010, 18:32
Помогаю со студенческими работами здесь

Дружественные функции
Напишите программу, вычеркивающую из данного слова все буквы «а» (так, чтобы, например, из слова...

Дружественные функции
Тут выдает ошибку Помогите Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается...

Дружественные функции
День добрый. class Distance { private: int fut; int inch; public:...

Дружественные функции
Создать объект динамический стек. Перегрузить операции +, +=, -= (с извлечением элемента).

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru