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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lel'ka
8 / 8 / 2
Регистрация: 10.07.2012
Сообщений: 38
#1

Редактировать методы - C++

05.11.2012, 14:58. Просмотров 212. Ответов 0
Метки нет (Все метки)

Приветствую вас, дорогие форумчане!
Нужна ваша помощь в нелегком задании!
Помогите разобраться с битовыми методами :
С реализацией конструктора копирования и оператора разобралась( можете посмотреть, вдруг ошибка)
А вот с остальными не получается у меня разобраться.
Мне бы хоть пример,как это выглядит, так понять никак не могу
Нужно, чтобы заработала функция мейн.

Заранее спасибо тем, кто откликнется!
Желательно код на С++ с небольшими комментариями( очень уж хочу разобраться, что тут творится =)))

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <cstring>
 
using namespace std;
 
class CBitArray {
private:
    int *array;
    int sizeInBits;
    int sizeInCells;
public:
    CBitArray( const int size = 32 ) {
        sizeInBits = size > 0 ? size : 1;
        sizeInCells = ( sizeInBits >> 5 ) + 1;
        array = new int[ sizeInCells ];
        setToZero();
    };
    int getSizeInBits() {
        return sizeInBits;
    };
    void setToZero( void ) {
        std::memset( array, 0, sizeof( array[ 0 ] ) * sizeInCells );
    };
    CBitArray( const CBitArray &other ) {
        // ToDo: реализовать конструктор копирования
        CBitArray::CBitArray(const CBitArray &other){
        int i;
        array = new int[other.sizeInCells];
        if(!array)
        for(i=0; i<other.sizeInCells; i++)
        array[i]=other.array[i];
        }
    };
    const CBitArray& operator = ( const CBitArray &other ) {
        // ToDo: реализовать оператор присваивания
        if(this ==&other){
        return *this;
        }
        array = other.array;
        sizeInBits = other.sizeInBits;
        sizeInCells = other.sizeInCells;
    };
    void setBitToZero( const int index ) {
        // ToDo: реализовать процедуру установки значения бита, заданного по индексу, в 0.
    };
    void setBitToOne( const int index ) {
        // ToDo: реализовать процедуру установки значения бита, заданного по индексу, в 1.
    };
    int getBitValue( const int index ) {
        // ToDo: реализовать функцию, возвращающую значение бита, заданного по индексу.
    };
    void random( void ) {
        // ToDo: процедура заполнения битового массива произвольными последовательностями
        // нулевых и единичных битов.
    };
    friend ostream& operator << ( ostream& out, CBitArray &array ) {
        // ToDo: Реализовать процедуру вывода битового массива в поток: 
        // все нулевые биты должны отображаться цифрой 0,
        // все единичные биты - цифрой 1.
    };
    ~CBitArray() {
        delete [] array;
    };
};
 
int main( void ) {
    vector< CBitArray > arrayOfArrays;
    arrayOfArrays.push_back( CBitArray( 10 ) );
    arrayOfArrays.push_back( CBitArray( 20 ) );
    arrayOfArrays.push_back( CBitArray( 30 ) );
    while( !arrayOfArrays.empty() ) {
        CBitArray array = arrayOfArrays.back();
        array.random();
        cout << "Extracted array (size: " << array.getSizeInBits() << ") - " << array << endl;
        arrayOfArrays.pop_back();
    }
    system( "PAUSE" );
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 14:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Редактировать методы (C++):

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы - C++
Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы Abiturient:...

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....

редактировать и удалять - C++
как отредактировать и удалять записи из куче БД ?? #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include...

Редактировать програму - C++
Заданна матрица 3Х3. Заменить в матрице числа буквами. #include &lt;iostream&gt; using namespace std; void main() { const int n=3; ...

Редактировать код от C++ 11 - C++
Привет. Помогите отредактировать код, к примеру, я не знаю что такое &quot;auto&quot; в c++, помогите заменить его, чтобы обходиться без auto в...

Редактировать программу - C++
Задача: Составить функцию для подсчёта числа серий положительных, отрицательных чисел и нулей длиной не менее k в одномерном массиве...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2012, 14:58
Привет! Вот еще темы с ответами:

Редактировать рекурсивную функцию - C++
Доброго времени суток форумчане. У меня возник следующий вопрос, есть задание: Заданы n городов, между которыми определены рейсы...

Невозможно редактировать иконку - C++
Не получается рисовать на иконке средствами VS 2008. А именно на 32ух битных. Это проблема моих кривых рук или неподдержка альфа-канала для...

Двумерный массив нужно редактировать - C++
Нужно решить 2 проблемы: 1) При вводе данных с клавиатуры он считывает только положительные целые числа. А мне нужно, чтобы абсолютно...

Чем редактировать blob поля? - C++
Кто подскажет ,во всех редакторах баз ето поле принимает memo,которое не редактируется ,а как занести туда текст я нигде не нашел.


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru