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

Переопределение оператора в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сравнивание переменной с массивом(чисел) http://www.cyberforum.ru/cpp-beginners/thread341191.html
есть массив int mass = {1,2,3,4,5,6,7,8,9} как сравнить переменную с массивом?
C++ Преобразование строки в целое Может вопрос и глупый, но я все равно не догоняю... В функции что означает 3 параметр: char *_itoa( int value, char *str, int radix ); http://www.cyberforum.ru/cpp-beginners/thread341186.html
C++ Создание бота. Эмуляция клавиатуры, мыши.
Попросили написать простенький бот для одной корейской онлайн игрушки. Сразу столкнулся с проблемой сабжа - игрушка защищена православным GameGuard'ом и напрочь игнорирует Keybd_event, sendkeys etc. В добавок там используется DirectInput. Как я понимаю, в этом случае требуется писать опкоды непосредственно в буфер клавиатуры и ждать пока игрушка их проглотит. Учитывая мой уровень навыков...
Дейтел. Помощь в решении задач из книги C++
Добрый день. Начал изучение С++ по книге "Как программировать на С++" 5 издание. Установлена IDE Code::Blocks компилятор GCC. Не могу решить задачку 3.11. Где надо модифицировать класс GradeBook. Мое решение: GradeBook.h #include <string>
C++ классы http://www.cyberforum.ru/cpp-beginners/thread341115.html
Всем привет! Есть такое задание: Создайте программу с классом Team, который включает в себя следующие данные об участниках спортивных соревнований: ФИО игрока, игровой номер, возраст, рост, вес. В класс входят следующие элементы-функции: конструктор с параметрами, деструктор, функция просмотра текущего состояния объектов PRINT(); функция-друг, которая выведет информацию о самом легком...
C++ Сравнение шестнадцатеричных форм Такая задача:считать из потока 2-байтовое число, перевести в 16-ричную систему счисления и сравнить с заданным 16-ричным числом. помогите с решением.очень надо.. подробнее

Показать сообщение отдельно
castaway
Эксперт С++
4873 / 3012 / 370
Регистрация: 10.11.2010
Сообщений: 11,061
Записей в блоге: 10
Завершенные тесты: 1
11.08.2011, 23:30     Переопределение оператора в классе
Цитата Сообщение от silent_1991 Посмотреть сообщение
lazybiz, ага, а выше как-бы мой код, в котором как-бы есть конструктор, принимающий как-бы char.
Что самое удивительное, этого конструктора там нет. И давай ты больше меня не будешь убеждать в нереальности своих фактов! Это не серьезно!

Вот твой последний код:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <cstring>
 
class String
{
public:
    String(const char *string):
    m_size(strlen(string)),
    m_string(new char [m_size])
    {
        strncpy(m_string, string, m_size);
    }
 
    String(char c):
    m_size(1),
    m_string(new char [m_size])
    {
        m_string[0] = c;
    }
 
    ~String()
    {
        delete [] m_string;
    }
 
    void print() const
    {
        for (size_t i = 0; i < m_size; ++i)
            std::cout << m_string[i];
    }
 
    friend String operator+(const String &, const String &);
 
    String &operator+=(const String &right)
    {
        String tmp = *this + right;
 
        *this = tmp;
 
        return *this;
    }
 
    String &operator=(const String &right)
    {
        if (this != &right)
        {
            delete [] m_string;
 
            m_size = right.m_size;
 
            m_string = new char [m_size];
 
            strncpy(m_string, right.m_string, right.m_size);
        }
 
        return *this;
    }
 
private:
    size_t m_size;
    char *m_string;
};
 
String operator+(const String &left, const String &right)
{
    char *sum = new char [left.m_size + right.m_size + 1];
 
    strncpy(sum, left.m_string, left.m_size);
    strncpy(sum + left.m_size, right.m_string, right.m_size);
 
    sum[left.m_size + right.m_size] = '\0';
 
    return String (sum);
}
 
int main()
{
    String s1 = "abc";
    String s2 = "def";
    String s3 = s1 + s2;
 
    //s3 = s3 + 'x';
    //s3 = 'x' + s3;
    s3 += 'x';
 
    s3.print();
 
    return 0;
}
 
Текущее время: 02:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru