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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка вставкой http://www.cyberforum.ru/cpp-beginners/thread106957.html
while(mc!=m) {nov=n; for(is=0;is<n;is++){ for (i=nov;i<n;i++){if (vmatr<sk2){sk2=vmatr;c=i;}} nov++; if(sk2==vmatr){continue;} for (i=c;i>nov;i--){vmatr=vmatr;} vmatr=sk2; sk2=1000;} nov=0; mc++; }
C++ вычислить среднее арифметическое значение положительных элементов матрицы, расположенных над главной диагональю. Помогите пожалуйста найти ошибку!!! Нужно вычислить среднее арифметическое значение положительных элементов матрицы, расположенных над главной диагональю.А программа считает среднее арифметическое под диагональю. #include<iostream.h> #include<stdlib.h> #include<time.h> int main() { int n, **mas,i,j,sum=0, count=0; http://www.cyberforum.ru/cpp-beginners/thread106951.html
C++ Интегрирование дифференциального уравнения
Задание: Подготовить программу интегрирования дифференциального уравнения у’=cos(x+1)*tg(x)+y на отрезке 0<=x<=1 при у(0)=0. Интерфейс приложения – диалог. Обязательные элементы управления – EditBox, Picture и ListBox. Есть следующий код: { UpdateData(true); float p1,d; float fk,f1;
Заменить в тексте все символы 'a' на 'z', 'b' на 'y', 'c' на 'x' и т.д. C++
Добрый день. У меня такая задача: Заменить в тексте все символы 'a' на 'z', 'b' на 'y', 'c' на 'x' и т.д. Большое спасибо, мне написали на форуме программу для 1 строки. А как быть, если строк несколько, то есть массив из строк? Вот программа для 1 строки #include <iostream> int main() { char stroka;
C++ Ввод матрицы из файла - затирает последний элемент предыдущей строки http://www.cyberforum.ru/cpp-beginners/thread106938.html
Странный эффект Содержимое вводимого файла- 1 2 3 4 5 6 int *a; a = new(2*3); for (i=0;i<2;i++) for (j=0;j<3;j++)
C++ Описать структуру с именем Route Описать структуру с именем Route, содержащую следующие поля: название начального пункта маршрута, название конечного пункта маршрута, номер маршрута. Написать программу, выполняющую ввод с клавиатуры данных в массив Traffic, состоящий из 8 элементов типа Route. Упорядочить записи по номерам маршрутов. Вывести на экран информацию о маршруте, номер которого введен с клавиатуры. Если таких маршрутов... подробнее

Показать сообщение отдельно
Brainstubber
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 4
21.03.2010, 02:19     Перегрузка операторов
Столкнулся с проблемой при написании лабораторной по перегрузке операторов. Задание таково:
описать класс, содержащий координаты отрезка, метод для вычисления длины этого отрезка, перегрузить операторы сложения и умножения и затем применить их в работе с объектами класса.

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Otrezok
{
private:
    double x1;
    double y1;
    double x2;
    double y2;
public:
    Otrezok();
    Otrezok(double dx1, double dy1, double dx2, double dy2);
    Otrezok(const Otrezok &);
    ~Otrezok();
    
    friend Otrezok operator+=(const Otrezok& c1, const Otrezok& c2); 
    friend Otrezok operator*(const Otrezok& c1, const Otrezok& c2);
    double Otrezok:: Dlina();
};
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
#include <math.h>
#include "Otrezok.h"
 
Otrezok::Otrezok() {}
 
Otrezok::Otrezok(double dx1, double dy1, double dx2, double dy2)
{
    x1 = dx1;
    y1 = dy1;
    x2 = dx2;
    y2 = dy2;
}
 
Otrezok::Otrezok(const Otrezok &O)
{
    x1 = O.x1;
    y1 = O.y1;
    x2 = O.x2;
    y2 = O.y1;
}
 
double Otrezok:: Dlina()
{
    double d;
    d = sqrt(pow(y2-y1, 2) + pow(x2-x1, 2));
    return d;
}
 
Otrezok& operator+(const Otrezok &c1, const Otrezok &c2)
{
    return Otrezok(c1) + c2;
}
 
Otrezok& operator*(const Otrezok &c1, const Otrezok &c2)
{
    return Otrezok(c1) * c2;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <math.h>
#include "Otrezok.h"
using namespace std;
 
void main()
{
    Otrezok *L1 = new Otrezok();
    Otrezok *L2 = new Otrezok(9, 4, 7, -3);
    Otrezok *L3(L2);
 
    cout << "Dlina otrezka L2:" << L2->Dlina() << "\r\n";
    L1 = L3 + L2;
    cout << "Dlina otrezka L1:" << L1->Dlina() << "\r\n";
}
Выдает следующую ошибку: main.cpp(14): error C2110: '+' : cannot add two pointers.
Очень прошу подсказать, в чем я ошибся.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru