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

Перегрузить оператор - C++

Восстановить пароль Регистрация
 
greyfish1
Сообщений: n/a
17.10.2012, 10:49     Перегрузить оператор #1
Привет всем!
Помогите решить задачку.
Перегрузить оператор для объекта содержащего два закрытых элемента так, чтоб элемент одного объекта сдвигался вправо на количество байтов равное числу находящемуся в соответствующем поле другого объекта. Не использовать дружеские функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 10:49     Перегрузить оператор
Посмотрите здесь:

Как перегрузить оператор []? C++
Как перегрузить оператор = C++
перегрузить оператор ++ C++
C++ Сложение очередей, перегрузить оператор +
C++ Перегрузить для класса оператор ==
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.10.2012, 11:21     Перегрузить оператор #2
Цитата Сообщение от greyfish1 Посмотреть сообщение
на количество байтов
Может на количестве битов?
greyfish1
Сообщений: n/a
17.10.2012, 11:29     Перегрузить оператор #3
Думаю да. Но в задачке именно так написано :-)
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.10.2012, 11:55     Перегрузить оператор #4
как пример, сдвиг вправо это деление на 2 в степени, степень указывается числом справа
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
#include <iostream>
 
using namespace std;
 
class CBits
{
public:
    explicit CBits(int a_, int b_):a(a_), b(b_){}
    CBits operator >> (const CBits cb);
    int getA() const { return a; }
private:
    int a;
    int b;
};
 
CBits CBits::operator >> (const CBits cv){
    int value = this->a >> cv.a;
    return CBits(value, this->b);
}
 
int main(){
    CBits c1(8, 4);
    CBits c2(2, 4);
    CBits c3 = c1 >> c2;
    cout << c3.getA();
    return 0;
}
в данном случае 8 >> 2 следует 8 делим на 4 = 2;
Yandex
Объявления
17.10.2012, 11:55     Перегрузить оператор
Ответ Создать тему
Опции темы

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