Advertisement
Guest User

Untitled

a guest
May 19th, 2023
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. class MyClass {
  5.     char* str_;
  6.    
  7.     void Clean(){
  8.         delete str_;
  9.         str_ = nullptr;
  10.     }
  11.    
  12.     static char* Copy(const char* op_str){
  13.         char* result = nullptr;
  14.        
  15.         if(op_str != nullptr){
  16.             size_t size = std::strlen(op_str);
  17.             result = new char[size + 1];
  18.             result[size] = 0;
  19.             std::strncpy(result, op_str, size);
  20.         }
  21.        
  22.         return result;
  23.     }
  24. public:
  25.     MyClass() : str_(nullptr) {}
  26.    
  27.     MyClass(const char* op_str) : str_(Copy(op_str)) {}
  28.    
  29.     const MyClass& operator=(const MyClass& m) {
  30.         Clean();
  31.         str_ = Copy(m.str_);
  32.        
  33.         return *this;
  34.     }
  35.    
  36.     void ShowInfo() const {
  37.         std::cout << this->GetName() << std::endl;
  38.     }
  39.    
  40.     const char* GetName() const {
  41.         return str_;
  42.     }
  43.    
  44.     ~MyClass(){
  45.         delete str_;
  46.     }
  47. };
  48.  
  49. int main() {
  50.     int size = 3;
  51.     MyClass* dynamicArray = new MyClass[size];
  52.     dynamicArray[0] = MyClass("MatyeBall");
  53.     dynamicArray[0].ShowInfo();
  54.     delete[] dynamicArray;
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement