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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка строк,используя указатели http://www.cyberforum.ru/cpp-beginners/thread689069.html
Здравствуйте. Помогите, пожалуйста, решить задачу. Заранее спасибо. 1)Ввести строку в символьный массив tmp . 2)Выделить блок памяти через указатель. 3)Скопировать строку в выделенный блок. ...
C++ Массив структур: База данных машин, вывести машину зеленого цвета У меня задание такое : Нужно создать массив структур База даних машын, нужно вывести машыну зеленого цвета . Помогите разобраться в масиве структур никак немогу етого понять. http://www.cyberforum.ru/cpp-beginners/thread689068.html
Метод Ньютона C++
Здравствуйте! Посмотрите, пожалуйста! Решаю систему нелинейных уравнений методом Ньютона. Нашла алгоритм. 1) Задается размерность системы n, требуемая точность ε, начальное приближенное решение....
Скалярное произведение строк и столбцов массива (c++) C++
Я ввожу два двумерных массива a и b. Мне надо найти скалярные произведения строк массива a и столбцов массива b. И вывести их в два других одномерных массива c и d. И найти минимум из сумм ненулевых...
C++ Шаблонные классы http://www.cyberforum.ru/cpp-beginners/thread689042.html
Помогите разобраться с шаблонными классами template <class Type> class CL1 { }; class CL2 { }; int main(void) {
C++ Как подключить библиотеку gluit к компилятору? В общем, посмотрел на ютубе ролик с созданием змейки, решил попробовать сделать. Там все прекрасно описано, кроме подключения OpenGL и Glut. Погуглил, нашел, что OpenGL по умолчанию уже есть в винде,... подробнее

Показать сообщение отдельно
Lel'ka
8 / 8 / 2
Регистрация: 10.07.2012
Сообщений: 38

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

05.11.2012, 14:58. Просмотров 215. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru