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

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

Войти
Регистрация
Восстановить пароль
 
Later28
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 12
#1

Класс Int имитирующий встроенный тип int - C++

12.01.2013, 19:24. Просмотров 580. Ответов 10
Метки нет (Все метки)

Создать класс Int (с заглавной буквы) имитирующий встроенный тип int и позволяющий следующие конструкции:
Int i = 0;
i = i+1;
i++;
i=i+i;
i.vivod();//Вывод значения на консоль
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 19:24     Класс Int имитирующий встроенный тип int
Посмотрите здесь:

Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int - C++
// Оператор преобразования #include <iostream> using namespace std; class Counter { public: Counter(): itsVal(0) {} ...

clrscr(); не определен данный тип и const MAX_ELEMENTS = 4; отсутсвует тип int когда я его туда вписываю у меня больше ошибок вылазит - C++
#include "stdafx.h" #include <ctime> #include <stdio.h> #include <conio.h> int main() { const MAX_ELEMENTS = 4; ...

GetRandomInt( int min, int max ) или Генерация случайных чисел - C++
Это программа, генерирующая случайное имя и приветствие. Но вот почему-то, случайность выпадения чисел одинаковая при каждом включении...

Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n) (C/C++/Java) - C++
Дано натуральное число N. Напишите функцию int NumberOfZeroes(int n) (C/C++/Java), function NumberOfZeroes(n: longint): integer (Pascal),...

Как заполнить один int пустой массив другим int массивом ? - C++
Можно пример кода :)

Ошибка:unresolved external 'My<int>::My<int>(int)' unresolved external 'My<int>::~My<int>' - C++
есть 3 файла. файл inc.h: ... template &lt;class T&gt; class My { int m_size; T *m_data; public: My(int value); ~My(); ...

Преобразовать int в const int для установки размера массива - C++
Добрый вечер всем! Столкнулся с такой нестандартной проблемой. Нужно преобразовать значения типа int в const int, чтоб константная...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 19:37     Класс Int имитирующий встроенный тип int #2
взгляни сюда
Реализация расширенного класса Integer
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
12.01.2013, 19:47     Класс Int имитирующий встроенный тип int #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
#include <iostream>
using namespace std;
 
class Int
{
private:
    int m_value;
public:
    Int(const int &_value) : m_value(_value){};
    Int& operator= (const int &_rvalue) { m_value = _rvalue; return *this; };
    Int& operator= (const Int &_rvalue) { m_value = _rvalue.m_value; return *this; };
    Int& operator+ (const int &_rvalue) { m_value += _rvalue; return *this; };
    Int& operator+ (const Int &_rvalue) { m_value += _rvalue.m_value; return *this; };
    Int& operator++ () { m_value++; return *this; };
    void vivod(void) {std::cout<<m_value;};
};
 
int main()
{
    Int i = 0;
    i = i+1;
    i++;
    i=i+i;
    i.vivod();
    system("pause");
    return 0;
}
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
12.01.2013, 19:47     Класс Int имитирующий встроенный тип int #4
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
#include <iostream>
class Int
{
        int i;
public:
        Int(int);
        Int operator +(Int);
        Int operator ++(int);
        void output();
};
Int::Int(int j)
{
      this->i = j;
}
Int Int::operator +(Int j)
{
       return Int(this->i+j.i);
}
Int Int::operator ++(int)
{
       return this->i++;
}
void Int::output()
{
       std::cout<<this->i<<std::endl;
}
int main()
{
     Int i = 0;
     i=i+1;
     i++;
     i = i+i;
     i.output();
     return 0;
}
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
12.01.2013, 19:49     Класс Int имитирующий встроенный тип int #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
47
48
49
50
51
52
53
54
#include <iostream>
 
 
struct Int {
   
   Int(int const value = int()) : value(value) {}
      
   operator int() const {
      return value;
   }
   
   Int & operator ++() {
      ++value;
      return *this;
   }
   
   Int operator ++(int) {
      Int copy(*this);
      ++(*this);
      return copy;
   }
      
   Int & operator +=(Int const rhs) {
      value += rhs.value;
      return *this;
   }
   
   
private:
   int value;
};
 
Int operator +(Int lhs, Int const rhs) {
   lhs += rhs;
   return lhs;
}
 
Int operator +(Int const lhs, int const rhs) {
   return (lhs + Int(rhs));
}
 
Int operator +(int const lhs, Int const rhs) {
   return (Int(lhs) + rhs);
}
 
 
int main() {   
   Int i = 0;
   i = i+1;
   i++;
   i=i+i;
   // i.vivod();//Вывод значения на консоль 
   std::cout << i << std::endl;
}
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
12.01.2013, 22:10     Класс Int имитирующий встроенный тип int #6
Я бы по другому сделал. В задании сказано
Цитата Сообщение от Later28 Посмотреть сообщение
имитирующий встроенный тип int
поэтому вместо приватного члена int я бы сделал массив байт (char) из sizeof(int) элементов. Соответсвенно все операторы преобрели бы более сложную реализацию, да и тело конструктора тоже, т.к. еще нужно учитывать порядок байтов little-endian/big-endian.
Думаю это было бы ближе к заданию.
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,639
Записей в блоге: 26
13.01.2013, 13:12     Класс Int имитирующий встроенный тип int #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
Думаю это было бы ближе к заданию
Навряд ли. Задача - обычного начального уровня для тех, кто изучает Си++. Твоя интерпретация задачи выходит далеко за эти рамки. Ну и, к слову, если такой тип иммитируется массивом char'ов, то от endian'а такая конструкция не зависит, потому как нулевой элемент массива будет всегда определять младший байт (или всегда старший, в зависимости от желания автора)
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
13.01.2013, 13:18     Класс Int имитирующий встроенный тип int #8
Цитата Сообщение от Evg Посмотреть сообщение
Твоя интерпретация задачи выходит далеко за эти рамки.
Я имел ввиду, что если бы мне в универе дали такую задачу, то я сделал бы ее так.

Цитата Сообщение от Evg Посмотреть сообщение
то от endian'а такая конструкция не зависит ... в зависимости от желания автора
Ну можно было бы сделать так
C++
1
2
3
enum endian{LittleEndian, BigEndian}
...
Int(endian end = LittleEndian) {}// конструктор
Так было бы гораздо интересней
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,639
Записей в блоге: 26
13.01.2013, 14:05     Класс Int имитирующий встроенный тип int #9
Цитата Сообщение от Kastaneda Посмотреть сообщение
Так было бы гораздо интересней
Это был бы геморрой ради геморроя, который ничем не оправдан (т.е. усложнение реализации не даёт никаких преимуществ)
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
13.01.2013, 14:29     Класс Int имитирующий встроенный тип int #10
Цитата Сообщение от Evg Посмотреть сообщение
Это был бы геморрой ради геморроя, который ничем не оправдан (т.е. усложнение реализации не даёт никаких преимуществ)
Ну почему, если рассматривать задачу в рамках контрольной работы для ВУЗа, то это была бы демонстрация знаний. А если говорить о ней, как о реальной задаче, то врядли такое вообще может понадобиться, ну если понадобится, то конечно такое усложнение совершено лишнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 14:31     Класс Int имитирующий встроенный тип int
Еще ссылки по теме:

Ошибка error: invalid types 'int[int]' for array subscript - C++
Дана строка,содержащая английский текст.Найти количество слов,начинающихся с буквы b. Выдает ошибку в 29 строке:error: invalid types...

Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point { int x,y,z; }; double dlina(point a,point b) { ...

выдаёт error C2440: =: невозможно преобразовать 'int' в 'int [100] - C++
Ввести информацию об абонентах телефонной станции: фамилия, телефон, улица. Распечатать список абонентов 65-й АТС, проживающих на улице...

Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []' - C++
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Error С2664. Параметр 1 не может быть преобразован из 'int' в 'int [][10]' - C++
Добрый день! Компилятор &quot;ругается&quot; на описание функции. Как устранить данную проблему самому не знаю. Заранее благодарю за помощь! ...


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17462 / 5700 / 361
Регистрация: 30.03.2009
Сообщений: 15,639
Записей в блоге: 26
13.01.2013, 14:31     Класс Int имитирующий встроенный тип int #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
то это была бы демонстрация знаний
В реальности 99.9% что такое решение ты бы не сдал. Как минимум потому, что препод, придумавший такое задание, вряд ли бы осилил твою реализацию (если вообще знает, что такое endian)
Yandex
Объявления
13.01.2013, 14:31     Класс Int имитирующий встроенный тип int
Ответ Создать тему
Опции темы

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