Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 12.01.2013
Сообщений: 12

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

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

Студворк — интернет-сервис помощи студентам
Создать класс Int (с заглавной буквы) имитирующий встроенный тип int и позволяющий следующие конструкции:
Int i = 0;
i = i+1;
i++;
i=i+i;
i.vivod();//Вывод значения на консоль
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2013, 19:24
Ответы с готовыми решениями:

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

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

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)'
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

10
97 / 71 / 5
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
12.01.2013, 19:37
взгляни сюда
Реализация расширенного класса Integer
0
73 / 73 / 13
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
12.01.2013, 19:47
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;
}
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
12.01.2013, 19:47
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;
}
1
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
12.01.2013, 19:49
Как то так:
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;
}
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.01.2013, 22:10
Я бы по другому сделал. В задании сказано
Цитата Сообщение от Later28 Посмотреть сообщение
имитирующий встроенный тип int
поэтому вместо приватного члена int я бы сделал массив байт (char) из sizeof(int) элементов. Соответсвенно все операторы преобрели бы более сложную реализацию, да и тело конструктора тоже, т.к. еще нужно учитывать порядок байтов little-endian/big-endian.
Думаю это было бы ближе к заданию.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
13.01.2013, 13:12
Цитата Сообщение от Kastaneda Посмотреть сообщение
Думаю это было бы ближе к заданию
Навряд ли. Задача - обычного начального уровня для тех, кто изучает Си++. Твоя интерпретация задачи выходит далеко за эти рамки. Ну и, к слову, если такой тип иммитируется массивом char'ов, то от endian'а такая конструкция не зависит, потому как нулевой элемент массива будет всегда определять младший байт (или всегда старший, в зависимости от желания автора)
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
13.01.2013, 13:18
Цитата Сообщение от Evg Посмотреть сообщение
Твоя интерпретация задачи выходит далеко за эти рамки.
Я имел ввиду, что если бы мне в универе дали такую задачу, то я сделал бы ее так.

Цитата Сообщение от Evg Посмотреть сообщение
то от endian'а такая конструкция не зависит ... в зависимости от желания автора
Ну можно было бы сделать так
C++
1
2
3
enum endian{LittleEndian, BigEndian}
...
Int(endian end = LittleEndian) {}// конструктор
Так было бы гораздо интересней
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
13.01.2013, 14:05
Цитата Сообщение от Kastaneda Посмотреть сообщение
Так было бы гораздо интересней
Это был бы геморрой ради геморроя, который ничем не оправдан (т.е. усложнение реализации не даёт никаких преимуществ)
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
13.01.2013, 14:29
Цитата Сообщение от Evg Посмотреть сообщение
Это был бы геморрой ради геморроя, который ничем не оправдан (т.е. усложнение реализации не даёт никаких преимуществ)
Ну почему, если рассматривать задачу в рамках контрольной работы для ВУЗа, то это была бы демонстрация знаний. А если говорить о ней, как о реальной задаче, то врядли такое вообще может понадобиться, ну если понадобится, то конечно такое усложнение совершено лишнее.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
13.01.2013, 14:31
Цитата Сообщение от Kastaneda Посмотреть сообщение
то это была бы демонстрация знаний
В реальности 99.9% что такое решение ты бы не сдал. Как минимум потому, что препод, придумавший такое задание, вряд ли бы осилил твою реализацию (если вообще знает, что такое endian)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2013, 14:31
Помогаю со студенческими работами здесь

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.?
Не понимаю, с чего начинать. Заранее спс.

Что означает ошибка too few arguments to function ‘int my_func(int, int)’ (язык C++)?
В чём проблема? #include &lt;iostream&gt; int my_func (int i, int j){ int z; z=i+j; return z; } int main(){ ...

[Linker error] undefined reference to `sterling(int, int, int)'
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...

[Linker Error] Unresolved external 'Sort(int near*near ,int, int)
не могу понять в чем ошибка при компиляции ошибок не выдает при запуске программы - выдает эту ошибку Unresolved external 'Sort(int...

int main() и int _tmain(int argc, _TCHAR* argv[])
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include &quot;stdafx.h&quot; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru