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

Преобразование типов

06.06.2011, 12:28. Показов 5946. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста. Есть класс для работы со строками
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
class String                    //  Объявление строкового класса
{
   private:
       char* S;                  //  Строка
       size_t len;                  //  Длина строки
   public:
       String();                 //  Конструктор по умолчанию
       String(const char* s);    //  Перегруженный конструктор
       String(const String& s);  //  Конструктор копирования
       ~String() { delete [] S; }//  Деструктор           
       //  Дружественные функции
        //  Перегрузка бинарного оператора
        //  Функция реализует сцепление строк
        friend String operator+(const String&, const String&);    
        //  Перегрузка бинарного оператора
        //  Функция реализует пересечение строк
        friend String operator*(const String&, const String&);
        //  Перегрузка унарного оператора
        //  Функция реализует поиск уникальных элементов строки
        friend String operator!(const String&);        
        //  Перегрузка бинарного оператора
        //  Функция реализует ввод объектов класса с клавиатуры
        friend istream& operator>>(istream&, String&);
        //  Перегрузка бинарного оператора
        //  Функция реализует вывод объектов класса на экран
        friend ostream& operator<<(ostream&, const String&);
        //Перегрузка операторов сравнения
        friend void operator<(const String&, const String&);
        friend void operator>(const String&, const String&);
        friend void operator<=(const String&, const String&);
        friend void operator>=(const String&, const String&);
        friend void operator==(const String&, const String&);
        friend void operator!=(const String&, const String&);
        String& operator=(const String&);
        //  Перегрузка типа
        //  Функция реализует преобразование объекта класса к типу char*
        operator char*() { return S; }
        //  Функция возвращает длину строки
        size_t GetLen() { return len; }  
        //Преобразование к типу интеджер
        int transformation_int();
        //Преобразование к типу дабл
        double transformation_double();
        //Преобразование к типу лонг
        long int transformation_long();
};
Нужно преобразовать из строки в число типа int:
C++
1
2
3
4
5
6
7
int String::transformation_int()
{
    String *str = this;
    int result;
    result = atoi(*str);
    return result;  
}
если ввести 15.5 в result заносится 15, но в объект класса String все равно заносится 15.5
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2011, 12:28
Ответы с готовыми решениями:

Преобразование типов в С++
Задача: Определить два класса, String с преобразованием из char * в строку и обратно. Мой код: ...

Преобразование типов
Всем доброго здоровья. Не могу решить простенькую задачу, уже не знаю что делать.Суть такова нужно...

Преобразование типов
Как преобразовать char * в float?

Преобразование типов
Здравствуйте. Такая задача: Дано вещественное число r и целые неотрицательные m и n. Записать...

5
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 12:36 2
Цитата Сообщение от WASAW Посмотреть сообщение
если ввести 15.5 в result заносится 15, но в объект класса String все равно заносится 15.5
Не совсем верно. В объекте класса String остаётся 15.5. Понимаете, вы прочитали строку S, взяли её целую часть числа, которое хранится в ней, и вернули её. Но строку-то вы не тронули, она как была "15.5", так "15.5" и осталась.
1
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
06.06.2011, 12:44  [ТС] 3
А как ее изменить?
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 12:46 4
strcpy. Или найти первую точку и присвоить вместо неё \0... Вариантов много, но ЗАЧЕМ? Эта функция преобразования обязательно должна быть деструктивной?
1
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
06.06.2011, 12:59  [ТС] 5
мне обязательно чтобы объект класса String принимал нужное значение
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 13:10 6
Сначала в int через atoi, потом назад через itoa. Или sprintf.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2011, 13:10

Преобразование типов.
Подскажите как правильно преобразовать типы в следующем фрагменте: int i; i=GetKeyboardType(0);...

Преобразование типов
Доброго времени суток, у меня вопрос возник из нежелания переписывать довольно большой кусок кода....

Преобразование типов
Доброго времени суток. В программе нужен корректный ввод числа. Если, например вводим буковки -...

Преобразование типов
Вопрос по преобразованию строки в число , и наоборот . Например на форме расположен MaskedTextBox...


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

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

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