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

при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Множественное наследование http://www.cyberforum.ru/cpp-beginners/thread373901.html
Здравствуйте, всем! Я на этом форуме впервые. Пытаюсь изучать С++ самостоятельно. Литература некоторая имеется. Начал изучение с "С++ для чайников" 5-е издание Стефана Р. Дэвиса. Это самоучитель. Вот решил пока не дойду до конца(не изучу) на следующий шаг в изучении С++ переходить не буду. Вот уже дошел почти до конца. Глава 26 "Множественное наследование". И вот здесь появились вопросы...
C++ VS 2010 Приложение для кассы обмена валюты. Исходное значение (доллары или рубли) вводится в текстовое поле (TextBox). Курс доллара задан в программе и показывается в надписи (Label). Должен быть предусмотрен выбор типа перевода: доллары в рубли или наоборот с помощью какого-либо компонента, например RadioButton. Результат выводится в надписи (Label). При запуске программа дополнительно должна... http://www.cyberforum.ru/cpp-beginners/thread373900.html
Помогите найти ошибку C++
Пожалуйста, помогите найти ошибку. Компилятор выдает 2 ошибки. Думаю, что намудрила с переменной a. #include <iostream.h> #include <math.h> int main() { double x, y, z, a, b, s; // îáüÿâèëà ïåðåìåííûå. cout << "Vvedite x:"; // ââîä çíà÷åíèé
Рекурсивная процедура для вывода на экран цифр натурального числа в обратном порядке! C++
Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке!
C++ Вопрос про многопоточность и производительность http://www.cyberforum.ru/cpp-beginners/thread373881.html
Здравствуйте! Подскажите пожалуйста ответы на следующие вопросы: 1) Правда ли,что многопоточность в программе позволяет увеличить производительность программы, т.е снизить загрузку ЦП? 2)Например есть программный код. Можно ли каким-нибудь образом, используя определенные средства отладки, посмотреть сколько системных ресурсов(а именно загрузка ЦП) едят отдельные куски этого кода? Т.е...
C++ Помогите найти ошибку #include <iostream> using namespace std; int main() { double a, b; bool state; cout << " Enter a = "; cin >> a; cout << " Enter b = "; cin >> b; подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
28.10.2011, 06:34     при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого!
Если возвращать экземпляр по значению, то можно использовать возвращаемое значение в составных конструкциях присваивания. А если возвращать по ссылке, то можно использовать возвращаемое значение еще и как l-value. Пример (обрати внимание на строку 52):
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
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <string>
 
class klass
{
public:
    klass(int);
    ~klass();
    klass& operator = (const klass&);
    void display() const;
private:
    static size_t cnt;
    int _i;
    size_t num;
};
 
size_t klass::cnt = 0;
 
klass::klass(int i)
    : _i(i), num(++cnt)
{
}
 
klass::~klass()
{
    --cnt;
}
 
klass& klass::operator = (const klass& rhs)
{
    _i = rhs._i;
    return *this;
}
 
void klass::display() const
{
    std::cout << "Constructed " << cnt << " klass instance(s)" << std::endl
              << "Instance #" << num << ": _i = " << _i << std::endl;
}
 
int main()
{
    std::cout << "Create 3 klass instances: " << std::endl;
    
    klass a(1), b(2), c(3);
    a.display();
    b.display();
    c.display();
 
    std::cout << "Using operator = " << std::endl;
    
    (a = b) = c;
    a.display();
            
    return 0;
}
А вообще, возвращать ты можешь что угодно
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru