0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
1

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

14.03.2012, 14:04. Показов 1980. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2012, 14:04
Ответы с готовыми решениями:

Запись значения типа String^ в char* или std::string
String^ D1=textBox1-&gt;Text; Int32 D2=Convert::ToInt32(textBox2-&gt;Text); //god Int32...

Как совместить строку типа String, имеющуюся в коде и функцию, принимающую std::string ?
Доброго времен суток)) У меня такая проблема: есть строка типа String^ , а функция принимает...

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

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

3
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.03.2012, 18:34 2
Я бы заключил обявления класса string в новое пространство имен, а затем создавал бы новые обекты так myspace::string name. Где то в книге Мейерса писалось что нельзя ничего добавлять в пространство имен std.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 20:08 3
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
C++
1
2
3
4
5
string()
{
    _string==NULL;
    *_string==NULL;
 }
не понял смысл сего.
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
14.03.2012, 20:12 4
Цитата Сообщение от villu Посмотреть сообщение
не понял смысл сего.
взорвать комп(?))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2012, 20:12
Помогаю со студенческими работами здесь

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

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

Перевод строк std::string, std::wstring в Unicode (String)
Собственно столкнулся с проблемой, как корректно перевести к примеру текст из Edit1-&gt;Text в...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru