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

Реализация расширенного класса Integer - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объявление в структуре http://www.cyberforum.ru/cpp-beginners/thread634769.html
ругается на объявление батона struct StructurClientData { Button^ button; unsigned int data_ip4; DWORD system_id; HANDLE system_handle; SOCKET socket_client; State_Client_Connect client_state; sockaddr_in sockaddr_client;
C++ SEHException при заполнении вектора тут такое дело... если в кратце, есть вектор summa, заполняю его нулями и вылезает SEHException. Я так понимаю, ему не хватает памяти, или я выхожу куда то за пределы? vector <double> summa; double MaxValue=78643199; ... summa.clear(); summa.resize(MaxValue,0); //заполняю нулями Неужели что то банальное и глупое? http://www.cyberforum.ru/cpp-beginners/thread634760.html
Влияет ли на производительность C++
Влияет ли на производительность определение(тоесть реализация) функций внутри класса, а также использование вложенных классов?
удаление слова из строки C++
Написать программу, которая удаляет слово из некоторого количества слов в строке, в котором гласных букв меньше чем согласных.Заранее благодарен
C++ Логирование работы программы http://www.cyberforum.ru/cpp-beginners/thread634715.html
Всем доброго времени суток! Столкнулся с проблемой - мне дали программу и сказали разбирайся. Там полно различных функций и комментариев целых 0. Чтоб понять, что и какая функция делает, я подумал о логе. Как мне реализовать этот самый лог вызова функций? Саму концепцию я вроде как понимаю: нужно сделать отдельный .срр в котором будет прописана функция записи в файл строки формата: ...
C++ Глобальный HDC и имя переменной 1) Почему глобальный HDC невозможен? Точнее, если обработать WM_CREATE с добавлением : hdc = BeginPaint(hWnd, &ps); или hdc = GetDC(hWnd); То после выхода из WM_CREATE нарисовать что-то в этом hdc уже не выйдет. Во всяком случае на экране ничего не будет. Почему? Разве hWnd меняется? 2) Можно ли как-то имя переменной получить в виде строки? Допустим : int abc = 10, x; string b =... подробнее

Показать сообщение отдельно
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
08.08.2012, 19:06  [ТС]     Реализация расширенного класса Integer
Вот смотрите, начал писать заново класс integer. Использую ваши рекомендации по хранению числа:
Вот так нормально будет или нет:

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
#include <iostream>
using namespace std;
 
//перевод строки в число
int StrToInt(char *str,int len){
    if(len == 0 && len > 8) len = 8;
    
    int i = 0;
    int result = 0;
    
    while(str[i] && i < len){
        result *= 10;
        result += (str[i] - '0');
        i++;
    }
    
    return result;
}
 
class Integer{
    static const int amount = 8;     //количество цифр в массиве
    int *val;                        //здесь храним число
public:
    Integer(char *str);              //конструктор с инициализацией числа
};
 
Integer::Integer(char *str){
    int size = strlen(str) / 8 + 1;  //опеределим сколько блоков цифр требуется
    
    val = new int[size];             //выделим требуемыую память под блоки цифр
 
    
    int i, start;
    
    //записываем число
    for(i=0, start = 0; i < size; start+=8, i++){
        val [i]=StrToInt(str + start,amount);
    }
}
 
void main(){
 
    Integer("123456789987654312123");
}
Добавлено через 2 минуты
Может быть делать блоки побольше, чем 8 цифр?

Добавлено через 2 минуты
9 цифр достаточно будет.

Добавлено через 10 минут
Вот появился вопрос: если хранить число в массиве типа int, то для сложения чисел число надо записать в строку и далее выполнить операцию суммы?

Добавлено через 51 секунду
С суммой то, всё просто, а вот операция умножения?
 
Текущее время: 17:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru