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

Перегрузка оператора *= - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Произведение парных чисел первого столбца матрицы http://www.cyberforum.ru/cpp-beginners/thread1040576.html
помогите написать функцию пользователя, которая находит произведение парных отрицательных чисел первого столбца матрицы.
C++ Какой класс подходит? нужно из указанных классов перечислить те, объекты которых можно создавать без параметров (используя конструктор по умолчанию) /////////////////////////////////////////// class Journal { int pages; char* editor; int number; public: Journal(int p, char* ed, int num):pages (p), number (num) http://www.cyberforum.ru/cpp-beginners/thread1040565.html
C++ программа расшифровывающая сообщение
В строке слова зашифрованы, каждые из них записаны наоборот. Помогите написать программу. расшифровывающую сообщение.
Даны основания и высоты двух равнобедренных трапеций C++
Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров (Определить функцию для расчета периметров равнобедренной трапеции по ее основаниям и высоте).
C++ Векторы http://www.cyberforum.ru/cpp-beginners/thread1040504.html
Добрый день, помогите пожалуйста решить задачку, в моей программе могут быть ошибки, т.к. в материале я полный 0. /*IV. Ðåàëèçîâàòü â âèäå ÊËÀÑÑÀ íàáîð ïîäïðîãðàìì äëÿ âûïîëíåíèÿ ñëåäóþùèõ îïåðàöèé íàä âåêòîðàìè: 1) ñëîæåíèå; 2) âû÷èòàíèå; 3) ñêàëÿðíîå óìíîæåíèå âåêòîðîâ; 4) óìíîæåíèå âåêòîðà íà ÷èñëî; 5) äëèíà âåêòîðà. Âåêòîð ïðåäñòàâèòü ñëåäóþùèì òèïîì: struct Vector {double X, Y;};
C++ Передача функции заранее неизвестного объекта Здравствуйте. Можно ли не используя шаблонов передать функции объект заранее неизвестного класса и применить к нему функцию-член? #include <iostream> #include "Cat.h" #include "Dog.h" using namespace std; void makeItVoice( /* указатель на экземпляр заранее неизвестного класса */) { /* указатель на экземпляр заранее неизвестного класса */.voice(); подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
14.12.2013, 20:13     Перегрузка оператора *=
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
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
 
 
class point
{
    int *x, *y, *z;
public:
    point(int c1 = 0, int c2 = 0, int c3 = 0)
    {
        x = new int(c1);
        y = new int(c2);
        z = new int(c3);
    }
 
//     point& operator*=(const point &pt) {
//     *x*= *pt.x;
//     *y*= *pt.y;
//     *z*= *pt.z;
//     
//     printf ("Почему-то компилятор выбирает эту функцию\n*x= %d\n", *x);
//    
//     return *this;
//    }
 
    friend point& operator*=(point &, const point &);
 
 
    friend ostream& operator << (std::ostream& os, const point& point);
 
    ~point()
    {
        delete x;
        delete y;
        delete z; 
    }
};
 
//Реализация
 
point& operator*=(point &pt_0, const point &pt_1) {
     *pt_0.x*= *pt_1.x;
     *pt_0.y*= *pt_1.y;
     *pt_0.z*= *pt_1.z;
     printf ("А эту выбирает, только если функцию-метод класса закомментить\n");
     return pt_0;
}
 
 
    ostream& operator << (std::ostream& os, const point& point)
    {
      return (os << "point(" << *point.x << ',' << *point.y << ',' << *point.z << ')');
    }
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
int main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
    point a(1, 3, 5), b(2, 1, 0);
    cout << a << '\n';
    cout << (a *= b) << '\n';
 
  getchar ();
  return 0;
}
Функция-член класса закомменчена. Использовать либо её, либо ружественную функцию, иначе линкёр ругается.
 
Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru