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

Организовать арифметику класса ( сложение вычитание и сравнение) в виде именованных функций, сохраняющих результат в объекте «this» - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задачи с использованием break и continue http://www.cyberforum.ru/cpp-beginners/thread1043473.html
Добрый день :3 Нубному-нубу нужна помощь в решении двух задач - одну с использованием break, вторую с использованием continue. Помогите, пожалуйста :3 1. Разработайте программу, которая определяет задуманное число с 10 (n) попыток. Задуманное число оформляется в виде поименованной константы. При необходимости предусмотреть проверку исходных данных. (В программе используется оператор break)....
C++ Написать программу использую метод бинарной вставки Написать программу, для упорядочивания товаров на складе. Пользователь вводит количество наименований товаров, количество и стоимость единицы каждого товара. Затем программа упорядочивает товары по общей стоимости, имеющегося в наличии на складе в порядке убывания методом бинарной вставки. Сортировку и расчет стоимости товаров на складе оформить в виде функций. http://www.cyberforum.ru/cpp-beginners/thread1043468.html
Вывести номер последнего из элементов массива, удовлетворяющего двойному неравенству C++
Помогите с решением задачи на С++ Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов AK, которые удовлетворяют двойному неравенству A1 < AK < A10. Если таких элементов нет, то вывести 0.
C++ Ошибка в программе
Доброе утро, уважаемые программисты. Прошу у вас помощи: выбивает ошибку. Спасибо #include <iostream> #include <math.h> using namespace std; void getParam(double &xStart, double &xLast, double &dX, double &E); void calc(double &xStart, double &xLast, double &dX, double &E); double getSum(double &x, double &E, int &num); void echo(double &x, double &res, int &num, int type = 1);
C++ Как переделать под динамическое программирование? http://www.cyberforum.ru/cpp-beginners/thread1043443.html
Есть одномерный массив длиной N, заполненный числами от -10 до 10. Найти максимальную сумму, если можно брать следующий элемент, или через один. Условие сделать рекурсию и сократить количество вызовов с помощью динамического программирования.:wall: #include <iostream> #include <cstdlib> using namespace std; int f(int m, int n, int i = 0, int sum = 0) { int a = -20, b = -20; if (i + 2 < n)...
C++ Задачка.Нужно найти ошибку Изначальное условие задачи: Составить программу поисков всех чисел палиндромов до n(n вводится с клавиатуры), которые при возведение в квадрат также дает палиндром.(Без массивов и функций) Я решил сделать пока только поиск палиндромов и вывод их. Вот что у меня получилось: unsigned long int n, p = 0, o, v, i = 10; cout << "Введите число" << endl; cin >> n; for ( ;i <= n;i++){ o =... подробнее

Показать сообщение отдельно
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
16.12.2013, 16:07  [ТС]
Дополнить класс из следующими методами:
- перегрузить операции: ввода-вывода, сложение, вычитание, отношения (<, >, <=, >=, ==, !=) , индексации (с проверкой выхода за границу индексов);
- разработать конструктор копий и перегрузить операцию присваивания для осуществления неповерхностного копирования.
А вот это как сделать?

Добавлено через 4 часа 41 минуту
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "stdio.h"
#include "string"
#include "stdlib.h"
 
class MString
{
private:
    char* _p;
    size_t _size;
public:
    MString() : _p(NULL),_size(0)
    {
    }
    MString(size_t size) : _size(size)
    {
        _p = new char[_size + 1];
        memset(_p,0,_size + 1);
    }
    MString(const char* str)
    {
        _p = new char[strlen(str) + 1];
        memset(_p,0,strlen(str) + 1);
        strcpy(_p,str);
        _size = strlen(_p);
    }
    MString(const char* str,size_t size)
    {
        _p = new char[size + 1];
        memset(_p,0,size + 1);
        strncpy(_p,str,size);
        _size = size;
    }
    MString(const MString& rv)
    {
        operator=(rv);
    }
    MString& operator=(const MString& rv)
    {
      if(_p == rv._p)
          return *this;
      free_str();
      _p = new char[rv._size + 1];
      memset(_p,0,rv._size + 1);
      _size = rv._size;
      memcpy(_p,rv._p,_size);
      return *this;
    }
    MString& operator=(const char* str)
    {
        free_str();
        _p = new char[strlen(str) + 1];
        memset(_p,0,strlen(str) + 1);
        _size = strlen(str);
        strcpy(_p,str);
        return *this;
    }
    ~MString()
    {
        free_str();
    }
    MString& operator+(const MString& rv)
    {        
        char* tmp = _p;
        _p = new char[_size + rv._size + 1];
        memset(_p,0,rv._size + _size + 1);
        if(tmp)
          memcpy(_p,tmp,_size);
        memcpy(_p + _size, rv._p, rv._size);
        if(tmp)
          delete [] tmp;
        _size += rv._size;
        return *this;
    }
    MString& operator+(const char* str)
    {
        MString p(str);
        operator+(p);
        return *this;
    }
    bool operator ==(const MString& rv)
    {
        if(_size != rv._size)
            return false;
        if(memcmp(_p,rv._p,_size))
            return false;
        return true;
    }    
    void print(const char* fmt = 0) const
    {
        if(fmt)
            printf(fmt,_p);
        else
            printf("%s",_p);
    }
    size_t size() const
    {
        return _size;
    }
    char operator [] (size_t pos)
    {
        if(pos < _size)
            return _p[pos];
        return 0;
    }
private:
    void free_str()
    {
      if(_p)
      {
          delete [] _p;
          _p = NULL;   
          _size = 0;
      }
    }
};
 
int main()
{    
   MString s;
   MString s1;
   s = s + "123";   
   printf("%c",s[1]);
 
    system("PAUSE");
    return 0;
}
Дополнить класс виртуальными функциями.
Дополнить класс производным классом,разработать шаблон класса можете помочь?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru