Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leno4ka805
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
#1

реализовать операцию присваивания - C++

09.01.2014, 21:24. Просмотров 286. Ответов 3
Метки нет (Все метки)

Описать класс Строка с динамическим выделением памяти, реализовать операцию присваивания, остальные методы достаточно только объявить. Не могу понять, нужна ли здесь перегрузка =, а если нужна, то как это реализовать для строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 21:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос реализовать операцию присваивания (C++):

Реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных - C++
реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных о 3-х студентов с самым низким...

Помогите перегрузить операцию присваивания - C++
Здравствуйте, есть программа: #include<iostream> using namespace std; struct Element { char data; //Aaiiua Element...

Как перегрузить операцию = для присваивания элементам структуры внутри класса значений? - C++
Помогите, если не затруднительно. Столкнулся с проблемой, когда пытался присвоить в конструкторе значения элементам структуры, которая...

Реализовать оператор присваивания для класса куб - C++
Дана длина ребра куба. Вычислить объем куба и площадь его боковой поверхности. Данные взять из контрольного примера. Контрольный пример:...

как правильно реализовать операцию с goto и в чём моя ошибка??? - C++
Доброе время суток!!!! Не могли бы мне объяснить, как правильно реализовать операцию с goto и в чём моя ошибка??? Задача: вычислить...

Реализовать операцию извлечения всех элементов с четными числами из списка - C++
Создать список в который занести все числа от 10 до 25. Реализовать операцию извлечения всех элементов с четными числами из списка.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
09.01.2014, 21:29 #2
Цитата Сообщение от Leno4ka805 Посмотреть сообщение
нужна ли здесь перегрузка =
да, нужна.
Цитата Сообщение от Leno4ka805 Посмотреть сообщение
то как это реализовать для строк.
да просто, очищаем строку, потом копируем в неё новую или вызываем конструктор со строкой b и притсваиваем его по значению вызывающему объекту
C++
1
2
delete [] a;
strcpy(a,b);
Leno4ka805
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
09.01.2014, 21:39  [ТС] #3
а можно как то поточней, не особо понятно
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
09.01.2014, 22:34 #4
Leno4ka805,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <ctime>
using namespace std;
 
class String {                  //объявление класса
    char* s;                    //указатель на строку
    int len;                    //длина строки
public:
 
    String() {                  //конструктор по умолчанию
        s=NULL;
        len=0;
    }
 
    String(char* t) {           //конструктор с параметром
        len=strlen(t);
        s=new char[len+1];
        strcpy(s,t);
    }
 
    String(const String& obj) { //конструктор копирования
        len=obj.len;
        s=new char[len+1];
        strcpy(s,obj.s);
    }
 
    void Del() {                //удаление строки
        delete s;
        len=0;
    }
 
    String& operator=(String& obj) {    //перегрузка присваивания
        if (this!=NULL)
            Del();
        len=obj.len;
        s=new char[len+1];
        strcpy(s,obj.s);
        return *this;
    }
 
    void Print() {              //печать строки
        cout<<s<<endl;
    }
 
};
 
int main()
{
    String A("12345");
    String B;
    B=A;
    B.Print();
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 22:34
Привет! Вот еще темы с ответами:

Нужно ли реализовать также отдельно конструктор копирования, если имеется перегруженный оператор присваивания? - C++
у меня есть класс. и прототип перегруженной операции присваивания some_class&amp; some_class::operator=(const some_class&amp; some_object); ...

Реализовать оператор= для присваивания объекта класса-потомка объекту базового класса - C++
Есть два класса A и B, причем класс B является потомком A. Как реализовать следующее: obj_A = obj_B и obj_B = obj_A? Добавлено через 9...

Разработать класс "Вектор" и реализовать операцию векторного умножения векторов - C++
тема классы C++ !! разработать класс вектор и реализовать операцию векторного умножения векторов(develop and implement a class of vector...

Разработать класс "вектор" и реализовать операцию векторного умножения векторов - C++
Разработать класс &quot;вектор&quot; и реализовать операцию векторного умножения векторов #include &lt;vcl.h&gt; #include &lt;vector&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.01.2014, 22:34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru