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

как правильно перегружать оператор? - C++

Восстановить пароль Регистрация
 
Dze
Сообщений: n/a
07.06.2012, 09:07     как правильно перегружать оператор? #1
Есть такой класс.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class LampaO
{
private:
    int svet;
    int job;
    int pro;
public:
    LampaO(int voltage=220);
    int IfJob();
    int IfSvet();
 
    const LampaO  operator+ (const LampaO &v )
        { 
            LampaO  p = *this;
             
            return LampaO(p.pro +=v.pro);
        }
 
        
};
вот его конструктор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LampaO::LampaO(int voltage)
{
    pro=110;
    if(voltage>pro)  // здесь pro=220; хотелось бы так, но не так pro=110
    { 
        job = 0;
        svet=0;
    }
    else
    {
        job=1;
        svet=voltage*100/pro;
    }
}
Пожалуйста поясните почему оператор не присваивает pro=220
Здесь pro элемент этого класса я бы хотел что бы pro наследовалось из другого Вопрос: можно ли использовать в операторе одного класса, переменные другого
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 09:07     как правильно перегружать оператор?
Посмотрите здесь:

C++ Как правильно перегружать потоковый оператор вывода в файл?
C++ Как правильно применять оператор switch
C++ Как правильно перегружать унарный минус?
Как правильно перегрузить оператор для шаблона класса C++
Как перегружать оператор -> ? C++
C++ Как правильно записать условие в оператор if
C++ Как же все-таки лучше всего перегружать операторы?
C++ Как правильно перегрузить оператор [] =

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
07.06.2012, 10:27     как правильно перегружать оператор? #2
Так как ты написал делать неправильно. Конструктор - это метод класса, выполняющийся автоматически в момент создания объекта, основная задача конструктора инициализация полей класса. А ты передаёшь ему непонятный аргумент. Опиши условие задачи, я попробую тебе помочь.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,185
Завершенные тесты: 1
07.06.2012, 10:33     как правильно перегружать оператор? #3
Надо написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LampaO::LampaO(int voltage)
{
    pro=voltage;
    if(voltage>110)  // здесь pro=220; хотелось бы так, но не так pro=110
    { 
        job = 0;
        svet=0;
    }
    else
    {
        job=1;
        svet=voltage*100/pro;
    }
}
Yandex
Объявления
07.06.2012, 10:33     как правильно перегружать оператор?
Ответ Создать тему
Опции темы

Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru