Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Работа с треугольником https://www.cyberforum.ru/ cpp-beginners/ thread1023907.html
Треугольник задан координатами своих вершин. Найти периметр этого треугольника и площадь. Буду благодарен:)
C++ Определение принадлежности точки указанной области (перевести с Pascal на C++)
var x,y: real; begin write('Введите значения x, y: '); readln(x,y); if ((y<0)and(y>=-2)and(x>=-1)and(x<=1)) or((y>=0)and(x>=-1)and(x<=1)and(abs(x)>=y)) then writeln('Точка попадает в заштрихованную область') else writeln('Точка не попадает в заштрихованную область'); readln;
C++ Шаблонная функция Всем привет! Подскажите пожалуйста, почему не работает следующее объявление функции-шаблона? template <class T> class Base { T itsT; public: Base(): itsT(0) {} T getT() const {return itsT;} void setT(T age) {itsT = age;} class Temp { void func();}; https://www.cyberforum.ru/ cpp-beginners/ thread1023902.html C++ Напишите программу, которая позволяет пользователю ввести число, а затем генерирует таблицу размером 20 строк на 10 столбцов https://www.cyberforum.ru/ cpp-beginners/ thread1023899.html
вот задача Решения к упражнениям, помеченным знаком *, можно найти в приложении Ж. *1. Предположим, вы хотите создать таблицу умножения на заданное число. Напишите программу, которая позволяет пользователю ввести это число, а затем генерирует таблицу размером 20 строк на 10 столбцов. Первые строки результата работы программы должны выглядеть примерно сле- дующим образом: Введите число: 7...
C++ Списки структур
#include <iostream> #include <conio.h> #include <fstream> using namespace std; struct owner { char fam; char im; char ot;
C++ Задача водопровод https://www.cyberforum.ru/ cpp-beginners/ thread1023883.html
Помогите решить олимпиадную задачу. Второй день бьюсь и никак не могу найти нормальный рабочий алгоритм
C++ Где ошибка? Позиция в string https://www.cyberforum.ru/ cpp-beginners/ thread1023867.html
#include <iostream> #include <cstring> using namespace std; int main() { int nr; string alfa, tekst, kod; alfa = "ABCDEFGHIKLMNOPQRSTVXYZ"; for (int i=1; i <= alfa.length(); i++)
Дан одномерный массив, элементы которого - целые числа, а также цифра D. Удалите из заданного массива все элементы, последняя цифра которых равна D C++
Помогите с решением. Дан одномерный массив, элементы которого - целые числа, а также цифра D . Удалите из заданного массива все элементы, последняя цифра которых равна D.
C++ Перегрузки Изменить программу предыдущей лабораторной работы. Функцию, определяющую бьет ли первая карта вторую, определить в базовом классе как виртуальную, переопределив в производном классе с учетом козыря.(предыдущая задача-Описать производный класс, содержащий поле козырь, и функцию, проверяющую кроет ли карта, указанную в качестве параметра другую карту с учетом козыря.) Добавлено через 1 час 35... https://www.cyberforum.ru/ cpp-beginners/ thread1023854.html C++ Вывести слово СТУДЕНТ в заданном падеже единственного числа https://www.cyberforum.ru/ cpp-beginners/ thread1023849.html
Помогите написать программу в C++ Задание задачи таково: При введении одного из символов (N-Именительный,R-Родительный,D-Дательный,Z-Винительный,O-Творительный,P-Предложный) вывести слово СТУДЕНТ в заданном падеже единственного числа.
C++ Выбрать K чисел так, что бы их произведение было минимально возможным
На доске выписаны все целые числа от a до b включительно. Необходимо выбрать K из них так, что бы их произведение было минимально возможным. Входные данные: В единственной строке задаются три целых числа a, b и K (-10^9 <= a <= b <= 10^9, 1 <= K <= 10^5, K <= b-a+1). Выходные данные: Выведите К различных целых чисел, принадлежавших отрезку , произведение которых будет минимально вожможным....
C++ Вычислить, какой процент составляет число А от числа В 1. Вычислить, какой процент составляет число А от числа В. https://www.cyberforum.ru/ cpp-beginners/ thread1023830.html
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,493
Записей в блоге: 1
01.12.2013, 13:34 0

Классы (константный метод и перезагрузка оператора равно) - C++ - Ответ 5418387

01.12.2013, 13:34. Показов 832. Ответов 6
Метки (Все метки)

Ответ

Цитата Сообщение от Brain_Dead Посмотреть сообщение
a = b = c работает и с возвратом по значению (проверял)
ну тогда можно проверить (a=b)=c;
конкретно в таком порядке без возврата ссылки не обойтись, думаю. (a=b) будет lvalue только если вернёт ссылку на корректный объект

Добавлено через 26 минут
Вот пример неправильно перегруженного оператора =
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
class test{
    int* ptr;
   public:
       test()                {ptr=new int(0);}
       test(int arg)         {ptr=new int(arg);}
       test(const test& copy){ptr=new int(copy.get());}
       int get()const        {return *ptr;}
       void print_addr()const{std::cout<<"addr: "<<ptr<<std::endl; }
       /*test& operator=(const test& copy){//правильный оператор
           if (this!=&copy) *ptr=copy.get();
           return *this;
       }
       void operator=(const test& copy){//неправильный оператор, если хочешь скомпилировать a=b=c
                                                   //в остальных случаях нормально прокатит.
           if (this!=&copy) *ptr=copy.get();
       }*/
       
       test operator=(const test& copy){//проверяем такой оператор =
           if (this!=&copy) *ptr=copy.get();
           return *this;
       }
       
       ~test()               {delete ptr;}
};
int main() {
    test a(0), b(0), c(5);
    std::cout<<"operator = demo. Operator= must copy only values. Each ptr must keep pointing to individual address"<<std::endl;
    std::cout<<"a, b, c, addresses before:"<<std::endl;
    a.print_addr();
    b.print_addr();
    c.print_addr();
    (a=b)=c;
    std::cout<<"a, b, c, addresses after:"<<std::endl;
    a.print_addr();
    b.print_addr();
    c.print_addr();
    std::cout<<"addresses are OK, but..."<<std::endl;
    std::cout<<"a, b, c, values after:"<<std::endl;
    std::cout<<a.get()<<" "<<b.get()<<" "<<c.get()<<std::endl;
    std::cout<<"Expected x, y, z behaviour:"<<std::endl;
    int x=0, y=0, z=5;
    (x=y)=z;
    std::cout<<"x="<<x<<" y="<<y<<" z="<<z<<std::endl;
    return 0;
}


Вернуться к обсуждению:
Классы (константный метод и перезагрузка оператора равно) C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2013, 13:34
Готовые ответы и решения:

Константный метод и константный аргумент в методе
Товарищи! Возник вопрос, в чем же разница, между константным методом и ссылкой на const объект в...

Константный метод
Всем привет,возник вопрос по поводу const в конце метода.Насколько я понял,const в конце метода не...

Константный метод и указатель this
class CBox { double Length; double Height; double Width; public: CBox(double a,...

Константный метод изменяет поля класса
Объясните, пожалуйста, почему такой код компилируется и работает без ошибок. И что нужно сделать в...

6
01.12.2013, 13:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2013, 13:34
Помогаю со студенческими работами здесь

Перезагрузка оператора сравнения
Есть класс Double,есть функция max(Double, Double), как правильно перезагрузить оператор сравнения...

Правильная перезагрузка оператора ''=''
совсем недавно начал работать с шаблонами, и возникла такая проблема: имеется шаблонный класс -...

Перегрузка оператора равно наоборот
Здравствуйте, уважаемые форумчане! Решил побаловаться с перегрузкой операторов, дошел до оператора...

Перегрузка оператора меньше или равно <=
Задача такая есть два объекта и нужно с помощью оператора перегрузки &lt;= сложить общие поля и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru