Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72

Как пишется композиция?

08.06.2017, 07:23. Показов 1382. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Ребята, помогите написать композицию для кода или подскажите как пишется она. Писал сначала через наследование все работает, а оказалось надо использовать композицию, еще не встречался с этим.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef RATIONAL
#define RATIONAL
#pragma once
 
class Rational{
    protected:
        int result;     /// Результат
        int first_number_n, second_number_n;
        int first_number_d, second_number_d;
 
    public:
        Rational();                         /// Конструктор по умолчанию
        Rational(const Rational &other);    /// Копирующий конструктор
        Rational(int);                      /// Конструктор с параметром
 
        void set_enter();       /// Ввод дробей
        void get_enter();       /// Вывод дробей
        void comparison();      /// Сравнение дробей
};
 
#endif
Класс Rational надо вписать композицией в класс LongLong
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
#ifndef LONGLONG
#define LONGLONG
#pragma once
#include "Rational.h"
 
class LongLong{
    private:
        long int numerator;             /// Числитель
        unsigned long int denominator;  /// Знаменатель
        int nMostCommonMultiple;
        Rational Rational_A; 
 
    public:
        LongLong();
        LongLong(const LongLong &other);
 
        void addition();            /// Сложение
        void subtraction();         /// Вычитание
        void division();            /// Деление
        void multiplication();      /// Умножение
        void reduce();              /// Сокращение дробей
 
        std::string tostring() const;
};
 
#endif
В классе LongLong пробовал написать, но не уверен что это правильно, потому что не работает_) Выдает ошибки, что он не знает поля класса Rational в реализации методов класса LongLong.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2017, 07:23
Ответы с готовыми решениями:

Выяснить, что представляют из себя отношения Ф композиция Ф и Ф композиция Ф^{-1}
Добрый день. До этого у меня было такое задание: Выяснить, какими из свойств: рефлексивность, антирефлексивность, симметричность,...

как пишется формула
как пишется формула определяющая введеное число простое или нет заранее спс

как правильно пишется ?
echo "<td>".$myrow.'</td><td><input type="text" name='.$myrow'. maxlength="1" size="1"></td>'; Тут переменные name должно присвоит id...

4
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
08.06.2017, 07:32
Цитата Сообщение от zzzLoLzzz Посмотреть сообщение
C++
1
2
3
4
5
6
class LongLong{
 private:
 long int numerator;  /// Числитель
 unsigned long int denominator; /// Знаменатель
 int nMostCommonMultiple;
 Rational Rational_A
;
ну поидее это Rational Rational_A; и есть композиция
0
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72
08.06.2017, 07:42  [ТС]
Antikl, хорошо. Что такое композиция? Вот если надо было писать наследованием, то все просто, так как класс LongLong наследовал все поля класса Rational и все было хорошо, а вот композиция как ей пользоваться? Если
C++
1
Rational Rational_A
это композиция, то как теперь сделать, чтобы класс LongLong видел поля класса класса Rational? Он просто не знает что это. Каким образом показать ему эти поля?

Просто в методах, которые находятся в классе LongLong я использую поля класса Rational через наследование все работает, а как сделать через композицию?
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
08.06.2017, 08:01
если не ошибаюсь то так.
C++
1
LongLong(int i):Rational_A(i);
Цитата Сообщение от zzzLoLzzz Посмотреть сообщение
класс LongLong наследовал все поля класса Rational
в том случаи если они public то да
0
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
08.06.2017, 08:18
zzzLoLzzz, работать с полями класса Rational через открытие методы, их Вы можете вызвать. Сделайте для каждого поля методы set(), get() и т.д.

Добавлено через 57 секунд
Кстати, насколько я знаю, тут
C++
1
2
3
#ifndef LONGLONG
#define LONGLONG
#pragma once
можно использоваться одно из двух, либо
C++
1
2
#ifndef LONGLONG
#define LONGLONG
, либо
C++
1
#pragma once
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2017, 08:18
Помогаю со студенческими работами здесь

как пишется головная программа?
Ребят,нужно написать головную программу с использованием модуля(в который входит функция и процедура,они готовые есть). как собственно ее...

Как пишется тангенс в Паскале?
tg(x) или tan(x)?

Как пишется чат? Теоритически, что и как делать?
Пытаюсь написать чат на WCF, в тот не посещаемый толком раздел прошу тему не переносить, так как вопрос не по WCF конкретно. Вот...

Как пишется знак бесконечности в маткаде?
Как пишется знак бесконечности в маткаде?

Как пишется Клиент-Сервер (чат)?
Добрый день всем!!! Задали написать чат!!! Если честно,то не знаю вообще как написать!!! Подскажите книжку,с помощью которой можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru