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

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

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

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

06.06.2011, 12:28. Просмотров 1357. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 12:28     Преобразование типов
Посмотрите здесь:

преобразование типов - C++
Visual c++ 2008 (win 7 64bit) консолька char VolumeNameBuffer; char FileSystemNameBuffer; unsigned long VolumeSerialNumber; ...

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

Преобразование типов - C++
С учебника переписал код на применение структур, но возникла проблема с преобразованием типов. Вот код проги: #include &quot;stdafx.h&quot; ...

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

преобразование типов - C++
Здравствуйте, подскажите пожалуйста как преобразовать данные типа LPARAM в LPCWSTR

Преобразование типов - C++
Всем доброго здоровья. Не могу решить простенькую задачу, уже не знаю что делать.Суть такова нужно вытащить из строки(символьный тип),...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
791 / 543 / 37
Регистрация: 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" и осталась.
WASAW
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
06.06.2011, 12:44  [ТС]     Преобразование типов #3
А как ее изменить?
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 12:46     Преобразование типов #4
strcpy. Или найти первую точку и присвоить вместо неё \0... Вариантов много, но ЗАЧЕМ? Эта функция преобразования обязательно должна быть деструктивной?
WASAW
3 / 3 / 0
Регистрация: 10.11.2009
Сообщений: 102
06.06.2011, 12:59  [ТС]     Преобразование типов #5
мне обязательно чтобы объект класса String принимал нужное значение
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 13:10     Преобразование типов
Еще ссылки по теме:

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

преобразование типов - C++
помогите у меня программа выдает ошибки преобразования типов подскажите как должно быть чтоб все работало программа делает перестановки...

Преобразование типов - C++
что-то не пойму почему такая ошибка код такой... .... cnetPars.parse(xml, m_creator, m_name, m_info, m_plane, m_idmap); .... ...

Преобразование типов - C++
Возможно ли преобразовать vector &lt;Transport_Vehicle*&gt; Cars_for_transportation в vector &lt;MotorCar*&gt; Cars_for_transportation

преобразование типов - C++
memcpy((void*)stroka,(void*)stroka,ykaz_bukva-ykaz_temp+1); что нужно поставить вместо void* чтоб не было предупреждений

Преобразование типов. - C++
Всем привет. Суть вопроса - ответ программы должен содержать только два знака после запятой. #include &lt;iostream&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 13:10     Преобразование типов #6
Сначала в int через atoi, потом назад через itoa. Или sprintf.
Yandex
Объявления
06.06.2011, 13:10     Преобразование типов
Ответ Создать тему
Опции темы

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