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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Символьный массив (просуммировать элементы массива и вывести их сумму) http://www.cyberforum.ru/cpp-beginners/thread938542.html
Задача состоит в том чтоб просумировать елементы масива и вывести их сумму. Масив заполняется числами, он может заполнятся не полностю поетому использую функцыю gets(). Пример вход: 236 выход:11 Вот что получилось 155 #include <iostream> #include <cstdio> using namespace std; int main (){ int sum = 0; char *x = new char ;
C++ Ввод кириллицы в С++ При вводе значения переменной типа string или char кириллицей всегда выдает кракозябры. setlocale помогает только для вывода (cout,printf работают безотказно). Ничего не нашел полезного в гугле, везде либо предлагают изменить раскладку на досовскую 866 (работает до первого сохранения .срр файла), либо какие то сложные и непонятные функции. Как лечить? http://www.cyberforum.ru/cpp-beginners/thread938531.html
[ILINK32 Error] Fatal: Unable to open file 'GLUT32.LIB' C++
В RadStudio возникает вот такая проблема. Вроде все как надо закинул по папкам Fatal: Unable to open file 'GLUT32.LIB'
C++ Кто работал с CMake?
Кто испозьзовал в роботе CMake(это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. ) ???
C++ Странные поведения с float http://www.cyberforum.ru/cpp-beginners/thread938471.html
Здравствуйте, объясните пожайлуста почему при выполеннии этого кода: #include <iostream> using namespace std; int main () { cout.setf(ios_base::fixed, ios_base::floatfield); float a=50.25; float b=11.17; cout<<a+b;
C++ Странное поведение смены кодировки Привет всем! Пожалуйста, объясните, из-за чего может происходить следующее: В своём программном коде подключаю <windows.h> и использую команды для отображения русского текста: #include <windows.h> ... SetConsoleCP(1251); SetConsoleOutputCP(1251); Когда я нажимаю "скомпилировать и запустить", то программа запускается и в ней русский текст отображается нормально, но когда я закрываю... подробнее

Показать сообщение отдельно
Atlant_V
8 / 8 / 1
Регистрация: 14.08.2013
Сообщений: 99
16.08.2013, 15:54  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Переопределять не нужно. Вот весь штабель операторов, что перечислен нужно перегрузить. Вручную. Поработайте и если возникнут трудности, - спрашивайте.
Спасибо! Так и сделаю!

Добавлено через 18 часов 32 минуты
помогите написать правильно деструктор
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
#include "iostream"
 
using namespace std;
 
class str
{
private:
    char* mas;
    int length;
public:
    str(char word[])
    {
        int strlength=strlen(word);
        length=strlength;
        mas=new char[length];
        //mas=word;
        for(int i=0;i<length;i++)
        {
            mas[i]=word[i];
        }
        mas[length]='\0';
    }
    str(int length1)
    {
        
        length=length1;
        mas=new char[length];       
        for(int i=0;i<length;i++)
        {
            mas[i]='\0';
        }
        
    }
    ~str()                                      //помогите написать правильно деструктор
    {
        
        delete []mas;
        
    }
    void print()
    {
        cout<<mas<<endl;
    }
    str operator+(str next)
    {
        int wlen=length+next.length+1;
        str temp(wlen);
        for(int i=0;i<length;i++)
        {
            temp.mas[i]=mas[i];
        }
        temp.mas[length]=' ';
        for(int i=0;i<next.length;i++)
        {
            temp.mas[i+1+length]=next.mas[i];
        }
        temp.mas[wlen]='\0';
        return temp;
    }
    bool operator>(str next)
    {
        //return length>next.length;
        int minlenght=(length<next.length)?length:next.length;
        for(int i=0;i<minlenght;i++)
            if(mas[i]!=next.mas[i])
                if(mas[i]>next.mas[i])return true;
                else return false;
    }
};
int main()
{
     char w[]="Hello world";
     str s(w);
     char w2[]="Vanja";
     str s2(w2);
     str s3=s+s2;
     s3.print();
     cout<<(s>s2);
     //s.print();
     return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru