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

Организовать арифметику класса знает кто как? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Комплексное задание http://www.cyberforum.ru/cpp-beginners/thread1036767.html
1) Створіть клас "Пара чисел", у області даних (protected) якого містяться два дійсних числа і визначені наступні методи: конструктор, віртуальна функція виводу чисел на екран. 2) Створіть клас "Комплексне число", як клас, породжений від класу за завдання №1. Додатково створіть для цього класу метод, що дозволяє змінити комплексне число шляхом додавання до нього іншого комплексного числа(за...
C++ Как добавить нули #include <iostream> #include<iomanip> using namespace std; template <class SORT> void myclass(SORT **a, const int n, int count); int main() { http://www.cyberforum.ru/cpp-beginners/thread1036765.html
Наибольшая общая подпоследовательность C++
Требуется вывести наибольшую общую подпоследовательность для двух наборов чисел (длины n и m). Мое решение не проходит половину тестов. Как исправить? #include <iostream> using namespace std; int main() { int n, m; cin >> n;
C++ Класс Date, алгоритм вычитания
Помогите разработать алгоритм по вычитанию одной даты из другой для моего класса. Методы сложения дат сделал, метод по прибавлению к дате дней через перегруженный оператор тоже сделал, а по вычитаю туплю... Помогите если можете сделать перегруженный оператор по вычитанию даты из даты... Прога в 3 файлах: Date.h #ifndef _DATE #define _DATE class Date { private:
C++ Определить, является ли заданная квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread1036759.html
Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали.
C++ Кому не трудно, нужна идея как сделать проще Всем добра! собственно вот задание Дана целочисленная матрица A(M,N). Продублировать в матрице каждый столбец, являющийся перестановкой натуральных чисел от 1 до М. т.е. что нужно сделать допустим исходный массив 1, 2, 3, 4, 5 2, 1, 8, 9, 0 если столбе равен перестановкой натуральных чисел от 1 до М, дописать этот столбец в конце результат 1, 2, 3, 4, 5, 1, 2 2, 1, 8, 9, 0, 2, 1 подробнее

Показать сообщение отдельно
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
11.12.2013, 02:06     Организовать арифметику класса знает кто как?
Как это сделать поможет кто-нибудь?
Организовать арифметику класса ( сложение вычитание и сравнение) в виде именованных функций, сохраняющих результат в объекте «this».

Дополнить класс следующими методами:
- перегрузить операции: ввода-вывода, сложение, вычитание, отношения (<, >, <=, >=, ==, !=) , индексации (с проверкой выхода за границу индексов);
- разработать конструктор копий и перегрузить операцию присваивания для осуществления неповерхностного копирования

Дополнить класс виртуальными функциями.

Дополнить класс производным классом.

Разработать шаблон класса для работы со строкам.
Тип информационного поля элемента списка соответствует типовому параметру шаблона.
Должны быть предусмотрены методы:
1. Конструкторы
a. По умолчанию
b. По значению информационного поля
c. Копий
2. Добавить
3. Найти
4. Удалить
5. Деструктор
6. Print
7. добавление с помощью операции сложения
8. операция вывода в поток .

Продемонстрировать работу класса на int, double и строках.


Код
#include <cstdlib>
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
class String
{
private:
    char* str;
    int n; 
public:
    String(char* string = "")
    {
        n = strlen(string);
        str = new char[n + 1];
        strcpy(str, string);
    }
 
    String(char* string, size_t size)  //конструктор, позволяющий создать строку из size символов
    {
        n = size;
        str = new char[n + 1];      
        strncpy(str, string, n);
        if (strlen(string) > size)
             str[n] = '\0';
    }
 
    ~String()
    {
        if (str)
        delete [] str;
    }
 
    void print()
    {
        std::cout << str << endl;
    }
 
    int  getnum()const //кол-во символов в строке
    {
        return n;
    }
 
    char& getchar(int n) // символ из позиции n
    {
          
        return str[n - 1];
        
    }
 
    void upper()  // в верхний регистр
    {
        for (int i = 0; i < n; i++)
            str[i] = toupper((unsigned char)str[i]);
    }
 
    int  punctuation() const // кол-во знаков препинания
    {
        int count = 0;
        for (int i = 0; i < n; i++)
        if (ispunct((unsigned char)str[i]))
            count++;
        return count;
    }
};
 
int main()
{  
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char s[255];
    cin.getline(s, 255);
    String str(s);
    
    str.upper();
    str.print();
    str.getchar(1) = 'R';
    
 
    cout << str.getnum() << endl;
    cout << str.punctuation() << endl;
    cout << str.getchar(1) << endl;
 
    system("PAUSE");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru