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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Сонца
23 / 23 / 6
Регистрация: 20.06.2013
Сообщений: 83
#1

Сложение классов - C++

19.11.2013, 14:03. Просмотров 511. Ответов 11
Метки нет (Все метки)

Есть некоторые классы
C++
1
2
3
4
5
6
7
class A {/*...*/};
class B{/*...*/};
class C
{
    A a;
    B b;
};
Как перегрузить +, чтобы следующая запись была верна? Моя фантазия, видимо, иссякла.
C++
1
2
A a; B b; C c;
c = a + b;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 14:03     Сложение классов
Посмотрите здесь:

Сложение чисел - C++
друзья, помогите пожалуйста. Написать функцию, которая будет складывать в стобик 2 числа. Ввести значения типа char Чтобы все это было...

Сложение строк - C++
смысл программы: вводим с клавиатуры строки....они запихиваются в вектор, когда мы прекращаем ввод они суммируются алгоритмом accumulate()...

Сложение строк - C++
Как сложить 2 строки по символьно ?

Сложение векторов - C++
Не понимаю почему методом insert не хочет принимать такие параметры. Даже если пытают переменной типа int присвоить vec, выдает ошибку (int...

Сложение символов - C++
Объясните пожалуйста как такое возможно #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { char...

Сложение столбиком. - C++
Привет всем!Я недавно начал изучать с++ и решил написать свою функцию сложения больших чисел т.е. длинную арифметику.Смысл не сложный.Мы...

Рекурсивное сложение - C++
Дорогие друзья,объясните пожалуйста, если функция возвращает значение fib(n-1) + fib(n-2); при значении к примеру n=5,какой будет...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
238 / 221 / 76
Регистрация: 21.02.2013
Сообщений: 515
Завершенные тесты: 1
19.11.2013, 15:11     Сложение классов #2
Тут надо чтоб класс был один и тот же:
C++
1
class A{.....};
,
C++
1
2
3
4
5
6
7
8
int main()
{
   A a1;
   A a2;
   A a3;
   a3 = a1 + a2;
 
}
я конечно тоже не гуру, но для перегруженного оператора так должно быть
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.11.2013, 15:26     Сложение классов #3
Если просто хочется, чтобы запись c = a + b; "съедалась" компилятором, то вот:
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
class B;
class C;
 
class A 
{
public:
    C operator+ (const B&);
};
class B {/*...*/};
class C
{
    A a;
    B b;
};
 
C A::operator+ (const B&)
{
    return C();
}
 
int main() {
    
   A a;
   B b;
   C c;
   c = a + b;
   return 0;
}
Сонца
23 / 23 / 6
Регистрация: 20.06.2013
Сообщений: 83
19.11.2013, 16:16  [ТС]     Сложение классов #4
Tulosba, у меня с десяток ошибок при такой записи, хотя "ничего и не подчеркивает".

Может я неправильно понимаю что мне нужно, но задача в том, что есть некоторые классы, являющиеся компонентами другого.... кхм.. в общем есть корпус, грифель, ластик и карандаш, как все вышеупомянутое вместе. В программе должна корректно работать запись: Карандаш = корпус + грифель + ластик.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.11.2013, 16:26     Сложение классов #5
Цитата Сообщение от Сонца Посмотреть сообщение
у меня с десяток ошибок при такой записи
Ошибок нет. http://ideone.com/T8pjTD
Цитата Сообщение от Сонца Посмотреть сообщение
Карандаш = корпус + грифель + ластик.
Тут, мне кажется, должно быть что-то типа "множества". Т.е. "карандаш" есть множество, состоящее из объектов "корпус", "грифель", "ластик". Соответственно операция сложения объектов должна давать множество.
Имхо, мне отсюда кажется так
Сонца
23 / 23 / 6
Регистрация: 20.06.2013
Сообщений: 83
19.11.2013, 17:04  [ТС]     Сложение классов #6
Цитата Сообщение от Tulosba Посмотреть сообщение
Ошибок нет.
Я проверяла на своем примере, так что может я что-то не учла за гранью примера.
Что такое множество я пока не знаю

Благодарю за внимание.
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
19.11.2013, 17:06     Сложение классов #7
Для этого придумали конструктор и композицию.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.11.2013, 17:18     Сложение классов #8
Цитата Сообщение от Сонца Посмотреть сообщение
Что такое множество я пока не знаю
Это математический термин.
Сонца
23 / 23 / 6
Регистрация: 20.06.2013
Сообщений: 83
19.11.2013, 17:28  [ТС]     Сложение классов #9
Цитата Сообщение от stima Посмотреть сообщение
Для этого придумали конструктор и композицию.
Обо всем и ни о чем.
Я тоже много красивых слов знаю и если бы могла решить задачу, не писала бы здесь.
Иногда, однако, стоит помнить, что по ту сторону монитора сидит человек без ваших знаний и навыков, а значит выражать мысли нужно подробнее двух слов. Или же не выражать вовсе, если лень.

Добавлено через 6 минут
Цитата Сообщение от Tulosba Посмотреть сообщение
Это математический термин.
я не представляю какая у него будет "отличительная особенность как программного кода или как его организовать
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
19.11.2013, 17:30     Сложение классов #10
Вы не знаете, что такое конструктор и собрались складывать N Обьектов? Если вы не знаете, что такое композиция, то запрос в гугл "c++ композиция" намного короче чем Ваше высказывание.
Tulosba
19.11.2013, 17:42
  #11

Не по теме:

Цитата Сообщение от Сонца Посмотреть сообщение
Или же не выражать вовсе, если лень.
Никто тут не имеет понятия о Вашем уровне знаний. Поэтому и разжевывать всё до символов Вам никто не будет. По-крайней мере сразу, пока не прояснится ситуация с Вашей базовой подготовкой. А некоторые ответы, например, что такое конструктор, правильнее почерпнуть из книг, или, на крайний случай, статей в интернете. Вместо того, чтобы спрашивать об этом на форуме.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 18:55     Сложение классов
Еще ссылки по теме:

Сложение по модулю (2^32) -1) - C++
Добрый вечер! Подскажите как реализовать сложение по модулю ((2^32) -1). Есть текстовый файл. Я считываю его, перевожу считанные данные в...

Не выполняется сложение - C++
#include <iostream> #define N 30 using namespace std; class Numizmatika { friend class Bulavki; friend class Znachki; ...

сложение чисел - C++
Доброго времени суток! вопрос вроде простой но я не могу понять объясните как сложить числа вот код программы if (x==a) { i = 4;...

Длинное сложение - C++
Здравствуйте! На форуме первый день и сразу же есть вопрос. Как нормально, быстро и адекватно написать длинное сложение на с++? Сижу уже...

Сложение дробей. - C++
Я хочу сложить массив дробей. Числитель у меня один массив а знаменательль другой массив. Если бы у меня небыло дробей можно было бы...


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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6285 / 5888 / 1909
Регистрация: 18.12.2011
Сообщений: 15,120
Завершенные тесты: 1
19.11.2013, 18:55     Сложение классов #12
Предлагаю интересный пример с применением перечисления:
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
enum kansnames{pen,lastic,grifel,karandash};
class Kans 
{
 
protected:
    kansnames kn;
public:
    Kans(kansnames k=pen)
    {
        kn=k;
    }
    Kans operator+(const Kans &x)
    {
        kansnames t=kansnames(kn+x.kn);
        return t;
    }
    
 };
 
int main()
{
    Kans Pen(pen),Lastic(lastic),Grifel(grifel),D;
    D=Pen+Lastic+Grifel;
}
Yandex
Объявления
19.11.2013, 18:55     Сложение классов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru