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

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Dmitriy78781
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
14.03.2012, 14:04     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? #1
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
#include <stdlib.h>
#include <iostream>
#include <string.h>
 
//using namespace std;
 
class string
{
  private:
  int _size;
  char *_string;
  public:
  char *c_str()
  {
  return _string;
  }
  int size()
  {
    return _size;
  }
  string()
  {
    _string==NULL;
    *_string==NULL;
  }
  string(char *string)
  {
   int size=0;
   while(*string!=NULL)
   {size++;}
   string=new char[size+1];
   for(int i=0; i<size; i++)
   {
         _string[i]=string[i];
   }
     _string[size]='\0'; 
  }
  string (const string &string)
  {          
    _size=string._size;
    _string=new char[_size+1];
    for(int j=0; j<_size; j++)
    {
      _string[j]=string._string[j];
    }
    _string[_size]='\0';
  }
  ~string ()
  {
    if(_size!=0)
    delete []_string;
  }
  char operator[](const int pos) const
  {
    if( pos >= 0 && pos < _size )
    return -1;
    else
    return _string[pos];
  }
  string& operator+=(const string &p)
  {
    char *u;
    u=new char[_size+1];
    strcpy(u,_string);
    _size = _size + p._size;
    delete _string;
    _string=new char[_size+1];
    for (int i=0;i<_size-p._size;i++)
    _string[i]=u[i];
    for (int i=0;i<p._size+1;i++)
    _string[_size+i-p._size]=p._string[i];
    delete []u;
    return *this;
  }
   string operator+(const string &r/*,const string &q*/ )
   {
     int size = this->_size + r._size;
     char *dt=new char[size+1];
     for (int i=0;i<r._size;i++)
     dt[i]=r._string[i];
     for (int i=0;i<this->_size+1;i++)
     dt[r._size+i]=this->_string[i];
     string nw(dt);
     delete []dt;
     return nw;
   }
   friend std::ostream& operator<<(std::ostream& os,const string &s)
   {
     os << s._string; 
     return os;
  }
};
int main(int argc, char *argv[]) 
{
        std::cout << "Welcome to the Momentics IDE" << std::endl;
        string the_string("ggg"), the_string_1("yyy");
        std::cout <<the_string<<std::endl;
        std::cout <<the_string+the_string_1<<std::endl;
        
        return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 14:04     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина?
Посмотрите здесь:

C++ запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
Передача функции указатель на элемент std::vector<std::string> C++
C++ Где и почему используют ту или иную строку std::string, char[], System::String^ ?
C++ Считывание строк с клавиатуры без учёта разделителей в переменные типа std::string
C++ Как правильно перевести std::wstring в std::string ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.03.2012, 18:34     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? #2
Я бы заключил обявления класса string в новое пространство имен, а затем создавал бы новые обекты так myspace::string name. Где то в книге Мейерса писалось что нельзя ничего добавлять в пространство имен std.
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 20:08     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? #3
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
C++
1
2
3
4
5
string()
{
    _string==NULL;
    *_string==NULL;
 }
не понял смысл сего.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
14.03.2012, 20:12     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? #4
Цитата Сообщение от villu Посмотреть сообщение
не понял смысл сего.
взорвать комп(?))
Yandex
Объявления
14.03.2012, 20:12     Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина?
Ответ Создать тему
Опции темы

Текущее время: 13:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru