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

описать класс для хранения строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
dr2210
Сообщений: n/a
29.01.2011, 11:03     описать класс для хранения строк #1
Доброго всем времени суток. Помогите пожалуйста.
получил задание:
Описать класс для хранения строк, в котором могут присутствовать только символы десятичных чисел. При попытке записи других символов генерировать исключение. Разработать тестовую рограмму.

сам я в с++ полный ноль....а задание на экзамен(((

Заранее спасибо. вы мне очень поможете))

спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2011, 11:03     описать класс для хранения строк
Посмотрите здесь:

C++ Создать класс для хранения календарных дат
C++ Описать класс,содержащий переменную для хранения текстовой строки.
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад C++
Описать структуру для хранения следующей информации C++
класс для хранения пары значений C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
29.01.2011, 12:09     описать класс для хранения строк #2
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
#include <cstddef>
#include <cstdio>
#include <cstring>
#include <exception>
 
class String {
 public:
 
  class WrongCharacterExcpetion : public std::exception {
   public:
    WrongCharacterExcpetion(const size_t position, const char symbol) throw()
        : position_(position), symbol_(symbol) {
      sprintf(error_string_, "Incorrect symbol '%c' at position %d.\n",
              symbol_, position_);
    }
    virtual const char* what() const throw() {
      return error_string_;
    };
    size_t position() const {
      return position_;
    }
    char symbol() const {
      return symbol_;
    }
  private:
    size_t position_;
    char symbol_;
    char error_string_[80];
  };
 
  String() : size_(0), data_(NULL) {}
  explicit String(const char* string)
      : size_(0), data_(NULL) {
    SetString(string);
  }
  ~String() {
    delete data_;
  }
  void SetString(const char* new_string) {
    size_t new_string_length = strlen(new_string);
    char *string_buffer = new char[new_string_length + 1];
    size_t position = 0;
    while (new_string[position] != '\0') {
      if (new_string[position] >= '0' && new_string[position] <= '9') {
        string_buffer[position] = new_string[position];
      } else {
        delete string_buffer;
        throw WrongCharacterExcpetion(position, new_string[position]);
      }
      ++position;
    }
    string_buffer[position] = new_string[position];
    size_ = new_string_length;
    delete data_;
    data_ = string_buffer;
  }
  size_t Length() const { return size_; }
  char *CString() const { return data_; }
 private:
  size_t size_;
  char *data_;
};
 
int main(int argc, char *argv[]) {
  String a("12345");
 
  try {
    String b("125a12");
  } catch (String::WrongCharacterExcpetion &exception_rised) {
    printf("%s\n", exception_rised.what());
  }
  return 0;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
29.01.2011, 16:29     описать класс для хранения строк #3
lemegeton, вроде как delete[] data_?
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
29.01.2011, 17:02     описать класс для хранения строк #4
igorrr37, угу
Yandex
Объявления
29.01.2011, 17:02     описать класс для хранения строк
Ответ Создать тему
Опции темы

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