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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Файл с расширением *.a http://www.cyberforum.ru/cpp-beginners/thread401862.html
Помогите пожалуйста разобратся... Что такое файл с расширением *.a?? скачал один пример... как я понял этот файл типа для статической библиотеки (как Lib)... он у меня не создается в проекте... а в другом проекте он должен подключатся.... но так как его нет вылетает ошибка...
C++ Если строка содержит больше пяти латинских "a",заменить все латинские и русские буквы строки следующими по алфавиту символами. Написать программу,которая читает с клавиатуры строку символов,преобразует ее и выводит результат на дисплей. 1)Если строка содержит больше пяти латинских "a",заменить все латинские и русские буквы строки следующими по алфавиту символами. 2)После каждого десятого символа ставить знак "-",а после каждого третьего символа(без учета "-") вставить запятую. "лишние " символы в конце строки... 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++ [C++] декларация класса со статическим полем Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое поле, я её решу. Просто сейчас не могу сочинить пример на эту тему, чтоб был и простым, и осмысленным, но не сингелтоновым, а надо сделать именно для примера фрагмент UML диаграммы классов с атрибутом, принадлежащим одновременно всем экземплярам, сингелтон же... подробнее

Показать сообщение отдельно
Гоблин
 Аватар для Гоблин
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, то есть там просто не надо возвращать ссылку. Или я не прав?
 
Текущее время: 23:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru