Форум программистов, компьютерный форум, киберфорум
Наши страницы

Классы, конструктор копирования (разбор куска программы) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ теоритический вопрос - память http://www.cyberforum.ru/cpp-beginners/thread567014.html
как вычислить адрес(реальный , а не тот который нам ядро подсовывает) какого либо объекта в виртуальной памяти? Добавлено через 5 минут имеется в виду 32 битная адресация
C++ Решение половинным делением. Составить функцию нахождения корня F(x) = 0 методом деления напополам. Интервал разбить на отрезки с шагом h. Уравнение x*x*x -2 = 0; , h = 0.5. #include <cmath> #include <iostream> #define... http://www.cyberforum.ru/cpp-beginners/thread567012.html
Перегрузка операции + C++
Всем привет! Ребята, обясните, пжлста, почему конструктор вызывается дважды. Rational integer1( c, d ),h;// инициализация h ( здесь я понимаю почему вызывается конструктор) h=integer +...
Мартица C++
В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
C++ Заменить в строке все целые числа соответствующим повторением следующего за ними символа (например, «abc5xacbl5y» - «abcxxxxxacbyyyyyyyyyyyyyyy»). http://www.cyberforum.ru/cpp-beginners/thread566968.html
Заменить в строке все целые числа соответствующим повторением следующего за ними символа (например, «abc5xacbl5y» - «abcxxxxxacbyyyyyyyyyyyyyyy»).
C++ ошибка в прорамме. выдаёт отрицательный ответ Составить программу для вычисления суммы данного ряда для указанного значения аргумента х, если известное количество N членов ряда Функция Условие Началььные данные n ... подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
6576 / 6138 / 2021
Регистрация: 18.12.2011
Сообщений: 15,993
Завершенные тесты: 1
06.05.2012, 22:03
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class string{
   char *str; //Здесь храним текст строки
   void load(char *s)    { str=strdup(s); }// копирование строки
   void add(char *s)     { str=(char*)realloc(str,strlen(str)+strlen(s)+1);// слияние 2 строк
                         strcat(str,s); }
   int find(char *s)     { char *p=strstr(str,s); return p==NULL ? -1 : p-str; }//поиск подстроки
   int cmp(string &t)    { return strcmp(str,t.str); }// сравнение строк
public:
   string(){ load(""); }// конструктор без параметров
   string(char *s){ load(s); } // конструктор из текстовой строки
   string(string &t){ load(t.str); add(t.str+1); } // копиконструктор
   ~string() { delete str; } // деструктор
   string   &operator=(string &r) { delete str; load(r.str); return *this; }// перегрузка операции "равно"
   string   operator+(string &r) { string t(str); t.add(r.str); return t; }//перегрузка сложения строк
   };
   string &EMPTY(string &s) { return s; } // функция, которая ничего не делает.
 
void main(){
   string s1,s2("ab"),s3;// s1,s3 пустые строки, s2 - строка с ab
   s3=s2;// копирование строки через оператор =
   s1=EMPTY(s2);// копирование строки через оператор = и пустую функцию.
   }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.