0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 105
1

Перегрузка оператора =

24.10.2022, 19:30. Показов 353. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
надо реализовать оператор присваивания для строк "=" помогите плиз.
компилятор пишет следующее
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
#include <iostream>
#include <cstring>
using namespace std;
 
class Counter {
public:
    const char *c, *o;
    string str, p;
    Counter() { }
    Counter(string s) {              // конструктор копирования
        str = s;
    }
    void display() {                        // спецоперация вывода строки
        std::cout << str << std::endl;
    }
    Counter readd() {                             //  спецоперация ввода строки 
        cin>>p;
        return p;
    }
    
    
    Counter operator = (const Counter& c2) {  //оператор =  
        
        c = c2.str.c_str();
        strcpy(this->str, c);
        return Counter(*this);
    }
    ~Counter() { }                    //деструктор
    };
 
 int main() {
    Counter a, b, k, r, v, t;
    int q, i;
    std::cout<<"Проверка операторов, Введите последовательно две строки"<< std::endl;
    a=b.readd();
    r=a;
    k.display();
    r.display();
    return 1;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2022, 19:30
Ответы с готовыми решениями:

Перегрузка оператора new[]
Привет всем, программирую давольно давно, на с++ второй год. Столкнулся с задачей, в которой нужно...

Перегрузка оператора '='
Не давно стал изучать С++ и дошёл до перегрузок операторов, и с книги написал пример, и не могу в...

Перегрузка оператора ()
Привет всем помогите придумать способ реализаци следущей задачи: есть класс симметричная...

Перегрузка оператора <<
Добрый пень! подскажите как написать код для реалилизации следующего требования: SpecialPrint...

2
Вездепух
Эксперт CЭксперт С++
12794 / 6671 / 1795
Регистрация: 18.10.2014
Сообщений: 16,890
24.10.2022, 19:51 2
Лучший ответ Сообщение было отмечено SAVCHink как решение

Решение

Цитата Сообщение от SAVCHink Посмотреть сообщение
компилятор пишет следующее
И? Где "следующее"?

Цитата Сообщение от SAVCHink Посмотреть сообщение
const char *c, *o;
string str, p;
Что такое string?

Зачем c, o и p сделаны полями класса?

Цитата Сообщение от SAVCHink Посмотреть сообщение
Counter() { }
Зачем явно писать конструктор по умолчанию, который явно ничего не делает?

Цитата Сообщение от SAVCHink Посмотреть сообщение
Counter(string s) {              // конструктор копирования
        str = s;
    }
Это не конструктор копирования. Это конструктор преобразования.

Цитата Сообщение от SAVCHink Посмотреть сообщение
Counter operator = (const Counter& c2) { //оператор =
c = c2.str.c_str();
То есть string - это именно std::string? Где тогда #include <string>? Почему не сделано #include <string>?

Цитата Сообщение от SAVCHink Посмотреть сообщение
strcpy(this->str, c);
Что это тогда такое вообще? Что такое strcpy в std::string? Что это должно делать? Где вы такое видели?
1
фрилансер
5848 / 5379 / 1103
Регистрация: 11.10.2019
Сообщений: 14,380
24.10.2022, 19:53 3
Лучший ответ Сообщение было отмечено SAVCHink как решение

Решение

Цитата Сообщение от SAVCHink Посмотреть сообщение
const char *c, *o;
    string str, p;
что за бредятина. Зачем юзать голый указатель, когда есть и вовсю пользуется std::string ?
0
24.10.2022, 19:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2022, 19:53
Помогаю со студенческими работами здесь

Перегрузка оператора ==
Есть шаблонный класс List (не имеющий перегруженных операторов) и есть шаблонный класс...

Перегрузка оператора %
Подскажите пожалуйста как перегрузить оператор % для матрицы! #include &quot;StdAfx.h&quot; #include...

перегрузка оператора
Как перегрузить оператор , чтобы его можно было использовать для операций присваивания новых...

Перегрузка оператора +
Всем привет, проблема на этот раз такая. Для того, чтобы выучить классы, я пишу некое подобие...

Перегрузка оператора
#include &lt;iostream&gt; class Node { public: char *s; int length; Node * next; public:...

Перегрузка оператора
Добрый день! Мне нужно перегрузить в классе двумерного массива оператор ++, чтобы она возвращал...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru