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

operator= возврат значения и просто ссылки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с классами. Найти сумму элементов каждой строки матрицы http://www.cyberforum.ru/cpp-beginners/thread809004.html
Здравствуйте. Помогите, пожалуйста, написать следующую программу: Создайте класс в соответствии с условием задачи. Определите функции-члены класса для вывода реализации требуемых действий. Задача: Найдите сумму элементов каждой строки матрицы. Заранее спасибо.
C++ strrok_s Есть код, компилятор (вижуал студио 2010) не выдает ошибок и варнингов. В определенный момент просто пишет, что работа программы прикращена, что не так можете пожалуйста взглянуть, подозреваю, что что-то связанное с стртоком. В дебаге что-то писало про неправильное значение &context #include "stdafx.h" #include <iostream> #include <conio.h> #include <iomanip> #include <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread808997.html
Программа if-else (координаты и радиус круга) C++
Здравствуйте! Необходимо написать программу: пользоатель вводит 2 координаты и радиус круга, программа их высчитывает и в зависимости от результата должна написать в какой четверти находится точка. Прикладываю условие и часть выполненной мною программы. Не знаю как заставить понимать, что точка находиться в третьей и четвертой системе координат. #include <locale.h> #include <conio.h>...
C++ Считывание текста с файла
Здравствйте,нужна программа которая будет считывать текст с файла и выводить его в другой файл.Что то не выходитюПрограмма просто создает пустой файлюПомогите! #include<stdio.h> int main() { FILE *fin,*fout; fin = fopen("D:\\input.txt","r"); fout= fopen("D:\\output.txt","w");
C++ Считывание текстового масива , русского http://www.cyberforum.ru/cpp-beginners/thread808977.html
Возможно вопрос баян и отправьте меня куда-то смотреть ответ, но я не нашёл как сделать это, мне надо считать в массив текст введённый в консоли на русском языке. вот к примеру обрывок int main () { char mass; cin>>mass; Добавлено через 1 час 45 минут Ну т.е что бы у меня в массив записались именно русские символы.
C++ Написать вывод из файла 2 способами в С++ табуляцию функции написать вывод из файла 2 способами в С++ табуляцию функции F(x)=2tg(x-1) на с шагом 0,1.. подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1

operator= возврат значения и просто ссылки - C++

15.03.2013, 00:14. Просмотров 456. Ответов 5
Метки (Все метки)

Здорова господа!
Снова пытаюсь чуток в С++ разобраться, с перегрузкой операций, снова ничерта непонятно.

от допустим класс
C++
1
2
3
4
5
6
7
8
9
10
class S
{
  int b;
 
  S& operator=(const S a)
  {
     b=a.b;
     return *this;
  }
};
ну допустим.
я записал
S a(3); //инициализировал допустим 3
S b;//пустой
b=a;//ну да b стал 3
ну и чо?

Вопрос:
Кода я в S& operator=(const S& a), меняю на S operator=(const S a) без ссылки, а просто возврат объекта, то у меня ничего не меняется все работает, а чото ж то происходит! Что?

Я как бы всегда думал, что возврат из функции определяется оператором return тоесть если мы хотим ссылку вернуть, то return &a; допустим, если значение, то return a; .
Ну а, что мы видим выше. Мы изменили значение которое возвращает функция, и не получили ошибку, как то странно. Как же мне вернуть тода не ссылку, а копию объекта? return *this это ссылка.
C++
1
2
3
4
5
6
7
8
S& operator=(const S& a)// ну это ссылка допустим
{
  return *this;
}
S operator=(const S& a)// тогда, что это копия?
{
  return *this;
}
Так почему это копия когда у них return одинаковый?

Ничерта не ясно господа просветите новичка!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru