Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка оператора - возвращаемый тип - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файл с расширением *.a http://www.cyberforum.ru/cpp-beginners/thread401862.html
Помогите пожалуйста разобратся... Что такое файл с расширением *.a?? скачал один пример... как я понял этот файл типа для статической библиотеки (как Lib)... он у меня не создается в проекте......
C++ Если строка содержит больше пяти латинских "a",заменить все латинские и русские буквы строки следующими по алфавиту символами. Написать программу,которая читает с клавиатуры строку символов,преобразует ее и выводит результат на дисплей. 1)Если строка содержит больше пяти латинских "a",заменить все латинские и русские буквы... http://www.cyberforum.ru/cpp-beginners/thread401846.html
Составление программ вычисления суммы N>0 C++
Найти количество первых целых положительных чисел, сумма которых не превышает S. Значение S вводить с клавиатуры. Добавлено через 6 минут ps язык Cи
Определить сумму четных чисел от 2 до n. C++
Здравствуйте, друзья. ... чет я "въехать" не могу как код написать под это задание.
C++ Не корректное выполнение сортировки двумерного массива http://www.cyberforum.ru/cpp-beginners/thread401821.html
Приветствую всех. Помогите найти и исправить причину не корректной работы программы. Примечание: я еще новичок и решаю задачки на самом простом компиляторе Турбо Си. Задание следующее: написать...
C++ Декларация класса со статическим полем Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое поле, я её решу. Просто сейчас не могу сочинить пример на эту... подробнее

Показать сообщение отдельно
Гоблин
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 29
09.12.2011, 16:49  [ТС]
Заголовочный файл MyClass.h
C++
1
2
3
4
5
6
7
8
9
class MyClass {
  private:
    int x;
  public:
    MyClass();
    int GetX();
    MyClass& operator += (int y);
    MyClass& operator += (MyClass &mc);
} ;
Функции класса (MyClass.cpp)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "MyClass.h"
 
MyClass::MyClass() {
  x = 0;
}
 
int MyClass::GetX() {
  return x;
}
 
MyClass& MyClass::operator += (int y) {
  x = x + y;
  return *this;
}
 
MyClass& MyClass::operator += (MyClass &mc) {
  x = x + mc.GetX();
}
Сам юнит
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <conio.h>
#include <stdio.h>
#include "MyClass.h"
 
void main() {
  MyClass MC, MC1, MC2;
  MC += 0;
  MC1 += 1;
  MC2 += 2;
  MC += MC1 += MC2; // эта строчка не работает. почему?
  MC += MC1 += 10; // а вот эта работает. опять же почему?)
  printf("%d",MC.GetX());
  getch();
}
Спасибо. Но почему не работает конструкция MC += MC1 += MC2? Что происходит в памяти при MC += MC1 += 10? То есть почему если сделать void operator += (int y); работать отказывается? Насколько я понимаю, сначала изменится х в классе MC1, а потом уже будет работаь MC.x + MC1.x, то есть там просто не надо возвращать ссылку. Или я не прав?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru