Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- #include <locale.h>
- using namespace std;
- class stringg{
- private:
- char *str;
- int size;
- public:
- stringg()//пустая строка
- {
- str=new char[1];
- *str='\0';
- size=0;
- printf("Вывод пустой строки. \n");
- }
- stringg (char *a)//констуктор с char *a
- {
- str=new char[strlen(a)+1];
- strcpy(str,a);
- size=strlen(a);
- printf("Конструктор с параметром char *:");
- printf("%s\n", str);
- }
- stringg(stringg &x)//копирование
- {
- size=x.size;
- str=new char[size+1];
- for(int i=0;i<size;i++)
- str[i]=x.str[i];
- str[size]='\0';
- printf("Оператор копирования:");
- printf("%s\n", str);
- }
- ~stringg()//деструктор
- {
- if(size!=0)
- delete []str;
- }
- stringg& operator=(const stringg& a)//оператор присваивания
- {
- str=a.str;
- size=a.size;
- return *this;
- }
- operator char*()const //приведение к const char*
- {
- return str;
- }
- stringg& operator+( const stringg& other)//конкатенация с "+"
- {
- char *str2= new char[size+other.size+2];
- strcpy(str2, str);
- strcat(str2, other.str);
- size+=other.size;
- printf("Конкатенация двух строк с помощью +:");
- printf("%s\n", str2);
- return *this;
- }
- stringg& operator+=(const stringg& other)//конкатенация с "+="
- {
- char *Data= new char[size+other.size+2];
- strcpy(Data, str);
- strcat(Data, other.str);
- str=Data;
- size+=other.size;
- printf("Конкатенация двух строк с помощью +=:");
- printf("%s\n", str);
- return *this;
- }
- };
- void main()
- {
- setlocale(LC_ALL, ".ACP");
- stringg s;
- stringg s2("Собачка");
- stringg s3(s2);
- stringg s4("Кошка");
- stringg s5("Мышка");
- s2+=s4;
- s4+s5;
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement