Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.10.2011, 12:02     при вызове конструктора присваивания надо возвращать ссыль на объект или сам объект. Смысл? Значения нужных полей меняютмся и без этого!
Цитата Сообщение от kravam Посмотреть сообщение
конструктора присваивания
Вы ведь имели ввиду оператор присваивания, правда?

Добавлено через 23 минуты
kravam, вообще перегрузка операторов - это написание функций. Самых обычных функций, с почти теми же правилами, что применяются для функций. Единственное, на что смотрит компилятор - на арность (т.е. количество параметров). А выполнять эти функции могут что угодно и как угодно. Например, оператор сложения может принимать объекты двух разных классов и возвращать третий класс. А может вообще ничего не возвращать. Здесь вы вольны поступать, как вам захочется.
Вот пример класса, в котором оператор * выполняет не те действия, которые теоретически должен выполнять оператор разыменования, однако так сделать в данном случае было достаточно удобно:

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
#include <iostream>
 
class NextBinDigit
{
public:
    NextBinDigit(int foo):
    m_foo(foo),
    m_bin_len(s_bin_len(m_foo))
    {
    }
 
    char operator*()
    {
        return m_bin_len-- ? (((m_foo >> m_bin_len) & 0x01) + '0') : '0';
    }
 
    operator bool() const
    {
        return m_bin_len != 0;
    }
 
private:
    size_t s_bin_len(int num)
    {
        size_t len = 1;
 
        while (num >> 1 != 0)
        {
            ++len;
 
            num >>= 1;
        }
 
        return len;
    }
 
private:
    int m_foo;
    size_t m_bin_len;
};
 
int main()
{
    NextBinDigit nbd = 1234;
 
    while (nbd)
        std::cout << *nbd;
 
    std::cout << std::endl;
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru