Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class SimpleVector {
- public:
- SimpleVector() : arr_(new int[10]), size_(10) {
- cout << "SimpleVector constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector(int size) : arr_(new int[size]), size_(size) {
- cout << "SimpleVector constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector(const SimpleVector& object) : arr_(new int[object.size_]), size_(object.size_) {
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- };
- cout << "SimpleVector copy constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector& operator=(const SimpleVector& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = new int[object.size_];
- size_ = object.size_;
- for (int i = 0; i < size_; i++) {
- arr_[i] = object.arr_[i];
- }
- }
- cout << "SimpleVector copy operator = for " << size_ << " elements, for " << this << endl;
- return *this;
- }
- SimpleVector(SimpleVector&& object) : arr_(object.arr_), size_(object.size_) {
- object.arr_ = nullptr;
- object.size_ = 0;
- cout << "SimpleVector move constructed for " << size_ << " elements, for " << this << endl;
- }
- SimpleVector& operator=(SimpleVector&& object) {
- if (!(this == &object)) {
- delete[] arr_;
- arr_ = object.arr_;
- size_ = object.size_;
- object.arr_ = nullptr;
- object.size_ = 0;
- }
- cout << "SimpleVector move operator = for " << size_ << " elements, for " << this << endl;
- return *this;
- }
- void print() const {
- for (int i = 0; i < 10; i++) {
- cout << arr_[i] << ' ';
- }
- cout << endl;
- }
- int& operator[] (int index) {
- if (index >= 0 && index < size_) {
- return arr_[index];
- }
- }
- ~SimpleVector() {
- delete[] arr_;
- cout << "SimpleVector destructed for " << size_ << " elements, for " << this << endl;;
- }
- private:
- int* arr_;
- int size_;
- };
- SimpleVector VectorFactory(int arrSize) {
- srand(time(NULL));
- SimpleVector vec(arrSize);
- for (int i = 0; i < arrSize; i++) {
- vec[i] = rand() % 10;
- }
- return vec;
- }
- int main() {
- SimpleVector vec1; // имеется какой-то вектор
- vec1 = VectorFactory(1000000); // записываем в него результат работы какой-то функции (копируем временный объект)
- std::cout << "First 10 vec1 elements: ";
- vec1.print(); // выводим результат
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement