Реализуем string спомощью malloc, strlen, strcpy и free.
Код mystring.cpp:
Код:
#include "mystring.h" // Конструктор MyString::MyString(char *value) { this->value = (char *)malloc(strlen(value)); // резервирует память под переменную this->value strcpy(this->value, value); // копируем строку из value в this->value } // Деструктор MyString::~MyString() { free(this->value); // освобождает память this->value } const char *MyString::get_value() { return this->value; // возвращает this->value } int MyString::get_length() { return strlen(this->value); // возвращает размер this->value }
Код mystring.h:
Код:
#ifndef MYSTRING_H #define MYSTRING_H #include <string.h> #include <stdlib.h> #include <malloc.h> class MyString { private: char *value; public: MyString(char *value); virtual ~MyString(); const char *get_value(); int get_length(); }; #endif
Пример код main.cpp:
Код:
#include <iostream> #include "mystring.h" using namespace std; int main(int argc, char** argv) { MyString str("Hello"); cout << str.get_value() << "\n" << str.get_length() << endl; return 0; }
Результат:
Код:
C:\mystringcpp>Project1.exe Hello 5