Написати програму, що реалізує роботу бітової множини в c++ в main.cpp та header.h. Та юніт-тести до них
Ответы
Ответ:Файл header.h:
#ifndef BITSET_H
#define BITSET_H
#include <cstdint>
#include <iostream>
class Bitset {
public:
Bitset(); // Конструктор за замовчуванням
Bitset(const Bitset& other); // Конструктор копіювання
~Bitset(); // Деструктор
void set(uint32_t index); // Додати елемент до множини
void reset(uint32_t index); // Видалити елемент з множини
bool test(uint32_t index) const; // Перевірити наявність елементу у множині
// Перевантаження операцій
Bitset& operator=(const Bitset& other);
Bitset operator&(const Bitset& other) const;
Bitset operator|(const Bitset& other) const;
friend std::ostream& operator<<(std::ostream& os, const Bitset& bitset);
private:
static const uint32_t SIZE = 32;
uint32_t* data;
uint32_t word_index(uint32_t index) const; // Повертає індекс слова у масиві
uint32_t bit_index(uint32_t index) const; // Повертає індекс біта у слові
};
#endif
Файл main.cpp:
#include "header.h"
#include <iostream>
int main() {
Bitset bitset;
bitset.set(0);
bitset.set(1);
bitset.set(2);
bitset.set(5);
std::cout << "bitset: " << bitset << '\n';
std::cout << "bitset.test(2): " << bitset.test(2) << '\n';
std::cout << "bitset.test(3): " << bitset.test(3) << '\n';
bitset.reset(2);
std::cout << "bitset: " << bitset << '\n';
Bitset bitset2;
bitset2.set(1);
bitset2.set(3);
bitset2.set(4);
bitset2.set(5);
std::cout << "bitset2: " << bitset2 << '\n';
Bitset bitset3 = bitset & bitset2;
std::cout << "bitset & bitset2: " << bitset3 << '\n';
Bitset bitset4 = bitset | bitset2;
std::cout << "bitset | bitset2: " << bitset4 << '\n';
return 0;
}
Файл unittest.cpp:
#include "header.h"
#include <
Объяснение:
дуже мало балів(