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

Перегрузка операторов, дружественные функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки... http://www.cyberforum.ru/cpp-beginners/thread200313.html
Дано символ. Определить и вывести слова, в которых встречается этот символ, и номер позиции, в которой он встречается первый раз.
C++ Решить линейное неравенство 1) Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1.2, 1.4, …, 2 кг конфет. 2) Решить линейное неравенство axb для произвольных a и b. 3) Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка... http://www.cyberforum.ru/cpp-beginners/thread200312.html
Можно ли как то выводить трехмерную матрицу в консоли? C++
Можно ли как то выводить трехмерную матрицу в консоли? и как
Ввести длинную строку s1 и шаблон s подсчитать сколько раз входит шаблон s в строку s1 C++
Ввести длинную строку s1 и шаблон s подсчитать сколько раз входит шаблон s в строку s1. Вот что я написал: #include<iostream> #include<conio.h> #include<clocale> #include<string> using namespace std;
C++ Построчное перемещение курсора в текстовом файле http://www.cyberforum.ru/cpp-beginners/thread200290.html
Кусочек кода, см. комментарии switch(flag) { case'1': { f=fopen(value, "r"); //Открываем необходимый файл if (f!= NULL) printf("File opened.\n");
C++ Ошибки при компеляции d:\msvc\mfc\lib\mafxcwd.lib(appinit.cpp) : error L2029: 'GETFILETITLE' : unresolved external d:\msvc\mfc\lib\mafxcwd.lib(doccore.cpp) : error L2029: 'GETFILETITLE' : unresolved external d:\msvc\mfc\lib\mafxcwd.lib(afxinl1.cpp) : error L2029: 'PRINTDLG' : unresolved external d:\msvc\mfc\lib\mafxcwd.lib(dlgfile.cpp) : error L2029: 'GETOPENFILENAME' : unresolved external... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.11.2010, 22:02     Перегрузка операторов, дружественные функции
Наверное что-то вроде этого:

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
#include <iostream>
#include <conio.h>
using namespace std;
class Numbers
{
        friend Numbers & operator--(Numbers &);
        friend Numbers operator-(Numbers & d, const Numbers & rhs);
public:
        Numbers(int numb = 1):number(numb) {} // Конструктор
        const Numbers & operator++();         // префиксная перегрузка ++
        
        // Перегрузка для использования операций "+" со встроенным типом int
        friend Numbers &operator+(int lhs, const Numbers &rhs);
        friend Numbers &operator+(const Numbers &lhs, int rhs);
        friend Numbers &operator+(const Numbers &, const Numbers &);   // перегрузка +
 
        int GetNumber() const { return number; } 
private:
        int number;
};
const Numbers & Numbers::operator++()
{
        ++number;
        return *this;
}
 
Numbers & operator--(Numbers & d)
{
        --d.number;
        return d;
}
Numbers operator-(Numbers & d, const Numbers & rhs)
{
        return Numbers(d.number - rhs.GetNumber());
}
 
Numbers &operator+(int lhs, const Numbers &rhs)
{
    return Numbers (lhs + rhs.number);
}
 
Numbers &operator+(const Numbers &lhs, int rhs)
{
    return Numbers (lhs.number + rhs);
}
 
Numbers &operator+(const Numbers &lhs, const Numbers &rhs)
{
        return Numbers (lhs.number + rhs.number); 
}
 
int main(void)
{
        Numbers n1, n2(10), n3;
        cout << "n1: " << n1.GetNumber() << endl;
        cout << "n2: " << n2.GetNumber() << endl << endl;
        n1++;  n2--;
        cout << "n1++: " << n1.GetNumber() << endl;
        cout << "n2--: " << n2.GetNumber() << endl << endl;
        n3 = n2 - n1;
        cout << "n3 = n2 - n1: " << n3.GetNumber() << endl << endl;
        n3 = n2 + n1;
        cout << "n3 = n2 + n1: " << n3.GetNumber() << endl;
        n3 = 3 + n2;
        cout << "n3 = 3 + n2: " << n3.GetNumber() << endl;
        n3 = n2 + 1;
        cout << "n3 = n2 + 1: " << n3.GetNumber() << endl;
 
        getch();
}
Добавлено через 3 минуты
Хотя нет, что-то левое... Надо спать...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru