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

Перегрузка операторов ввода вывода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ std::map нефикс. размер? http://www.cyberforum.ru/cpp-beginners/thread631265.html
Нубо-вопрос, std::map и std::array имеют фиксированный размер, как и обычные массивы?
C++ int / INT etc Вопрос легок, в чем разница между обычным int и Виндовским INT / etc? Попрошу подробного ответа :) http://www.cyberforum.ru/cpp-beginners/thread631249.html
Почему антивирус считает эту программу вирусом? C++
Компилирую и антивирус ее удаляет в карантин. Что это такое?:( #include <iostream> #include <windows.h> using namespace std; int main() { int a; int b;
Дано x,y,z Вычеслить a,b, если: C++
a=(3+e^(y-1))/(1+x^2 |y-tg(z)| ) b=1+(y-x)+〖(y-x)〗^2/2+(y-x)^3/3
C++ Трактри́са (линия влечения) http://www.cyberforum.ru/cpp-beginners/thread631203.html
у кого-то есть реализация этой функции или же знаете библиотеку в которой есть такая реализация?
C++ Массив испорчен Испытывал сортировку Шелла: void TestSort::shellSort(int x, int size) { int inc, i, j, seq; int s; s = increment(seq, size); // вычисление последовательности приращений while (s >= 0) // сортировка вставками с инкрементами y { подробнее

Показать сообщение отдельно
maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280

Перегрузка операторов ввода вывода - C++

31.07.2012, 18:11. Просмотров 3256. Ответов 3
Метки (Все метки)

ребята болит уже голова))
main.cpp
C++
1
2
3
4
5
6
7
8
9
#include "myStr.h"
int main()
{
           myStr myS("ok");
    cout<<myS<<endl;//надо чтоб заработало
    char x;
    cin>>x;
    return 0;
}
myStr.h
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#ifndef STRING_H
#define STRING_H
 
#include <iostream>
#include <iomanip>
#include <cstring>
using namespace std;
istream& operator>>(istream &i,myStr &s )
{
    const int lim=4096;
    char inBuf[lim];
    i>>setw(lim)>>inBuf;
    s=inBuf;
    return i;
}
ostream&
operator<<( ostream& os,const myStr &s )
{
    return os<<s.c_str();
}
class myStr
{
public:
    //конструкторы
        myStr()
        {
            _size=0;
            str=0;
        }
        myStr(const char *s)
        {
            if(!s)
            {
                _size=0;
                str=0;
            }
            else
            {
            _size=strlen(s);
            str=new char[_size+1];
            strcpy(str,s);
            }
        }
        myStr(const myStr &s)
        {
            if(!s.str)
            {
                _size=0;
                str=0;
            }
            else
            {
            _size=s._size;
            str=new char[_size+1];
            strcpy(str,s.str);
            }
        }
        void show()
        {
            if(!str)
                cout<<"Erro empty string"<<endl;
            else
                cout<<str<<endl;
        }
        //деструктор
        ~myStr()
        {
            delete []str;
        }
        //перегрузка операторов =
        myStr& operator=(const myStr &s)
        {
            delete []str;
            _size=s._size;
            str=new char[_size+1];
            strcpy(str,s.str);
            return *this;
        }
        myStr& operator=(const char *s)
        {
            delete []str;
            _size=strlen(s);
            str=new char[_size+1];
            strcpy(str,s);
            return *this;
        }
        //перегрузка операторов ==
        bool myStr::operator==(const myStr &s)
        {
            if(_size==s._size)
            {
                bool t=true;
                for(int i=0;i<_size;i++)
                {
                    if(str[i]==s.str[i])
                    {}
                    else{
                        t=false;
                        break;
                    }
                }
                return t;
            }
            else 
                return false;
        }
        bool myStr::operator==(const char *s)
        {
            if(_size==strlen(s))
            {
                bool t=true;
                for(int i=0;i<_size;i++)
                {
                    if(str[i]==s[i])
                    {}
                    else{
                        t=false;
                        break;
                    }
                }
                return t;
            }
            else 
                return false;
        }
        //перегрузка []
        char& operator[](int i)
        {
            return str[i];
        }
        //не пойми зачем((( 
        inline char* c_str() { return str; }
    int _size;
    char *str;
};
 
 
#endif
Делаю свой класс строк, хочу сделать вывод в помогите плис
Делал примерно что говорят в книге http://valera.asf.ru/cpp/book/c03.html
в конце там смотрите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru