Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Dmitriy78781
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
#1

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

14.03.2012, 14:04. Просмотров 1180. Ответов 3
Метки нет (Все метки)

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 14:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? (C++):

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++
Всем привет! Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт). Почему в...

Где и почему используют ту или иную строку std::string, char[], System::String^ ? - C++
Где и почему используют ту или иную строку std::string, char, System::String^ ? Объясните пожалуйста где нужно использовать...

Инициализировать массив строк типа std::string - C++
Есть массив из строк, надо присвоить ему значения. Возникла странная проблема. Вот код: string StrName; i = 1; while ( i...

3
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.03.2012, 18:34 #2
Я бы заключил обявления класса string в новое пространство имен, а затем создавал бы новые обекты так myspace::string name. Где то в книге Мейерса писалось что нельзя ничего добавлять в пространство имен std.
0
villu
203 / 204 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 20:08 #3
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
C++
1
2
3
4
5
string()
{
    _string==NULL;
    *_string==NULL;
 }
не понял смысл сего.
0
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
14.03.2012, 20:12 #4
Цитата Сообщение от villu Посмотреть сообщение
не понял смысл сего.
взорвать комп(?))
0
14.03.2012, 20:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2012, 20:12
Привет! Вот еще темы с ответами:

Объявить в заголовочном файле переменную типа std::string - C++
Почему я не могу в хедер файле объявит переменную стринг если писать std::string s=&quot;1111&quot;; &quot;лог ошибок будет писать что std...

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

'string' : undeclared identifier, std::string - C++
#include &lt;regex&gt; #include &lt;string&gt; #include &lt;vector&gt; std::vector&lt;string&gt; Tokenize( const string str, const std::regex regex ) { ...

Как создать и заполнить динамический массив строк типа std::string? - C++
Как создать и заполнить динамический массив строк типа string? Если заполнять массивы через getline(), почему то удаляется первая буква в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.