1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Перегрузка Операции Сложения

Тема в разделе "С и С++", создана пользователем 28111989, 24 окт 2011.

Статус темы:
Закрыта.
  1. 28111989

    28111989 Гость

    Репутация:
    0
    Мною был написан класс линия. В нем используется класс точка. Задача: перегрузить операцию суммы для сложения 2х линий покоординатно. Постоянно выдаёт ошибку: Ошибка 1 error C2511: Line Line::operator +(Line &,Line &): перегруженная функция-член не найдена. Не могу понять в чём проблема, смотрел схожие темы, но недопонял.
    Код:
    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    #include <math.h>
    using namespace std;
    
    class Point
    {
    public:
    void SetX(int x) {itsX=x;}
    void SetY(int y) {itsX=y;}
    
    int GetX() const {return itsX;}
    int GetY() const {return itsY;}
    private:
    int itsX;
    int itsY;
    };
    
    class Line
    {
    public:
    Line(int x1,int y1, int x2, int y2);
    ~Line() {}
    
    int Getpoint1x() const {return point1x;}
    int Getpoint1y() const {return point1y;}
    int Getpoint2x() const {return point2x;}
    int Getpoint2y() const {return point2y;}
    
    void Setpoint1x(int x1) {point1x=x1;}
    void Setpoint1y(int y1) {point1y=y1;}
    void Setpoint2x(int x2) {point2x=x2;}
    void Setpoint2y(int y2) {point2y=y2;}
    
    Point Getpoint1() const {return itsp1;}
    Point Getpoint2() const {return itsp2;}
    
    void Setpoint1(Point Location) {itsp1=Location;}
    void Setpoint2(Point Location) {itsp2=Location;}
    
    float GetLength() const;
    
    Line operator + (Line);
    
    private:
    Point itsp1;
    Point itsp2;
    
    int point1x;
    int point1y;
    int point2x;
    int point2y;
    
    };
    
    Line::Line(int x1,int y1,int x2,int y2)
    {
    point1x=x1;
    point1y=y1;
    point2x=x2;
    point2y=y2;
    
    
    itsp1.SetX(point1x);
    itsp1.SetY(point1y);
    itsp2.SetX(point2x);
    itsp2.SetY(point2y);
    }
    
    float Line::GetLength() const
    {
    return (sqrt(pow(float(point1x-point2x),2)+pow(float(point1y-point2y),2)));
    }
    
    Line Line::operator+ (Line l1,Line l2)
    {
    Line tmp(l1.Getpoint1x()+l2.Getpoint1x(),l1.Getpoint1y()+l2.Getpoint1y(),l1.Getpoint2x()+l2.Getpoint2x(),l1.Getpoint2y()+l2.Getpoint2y());
    return tmp;
    }
    
    void main()
    {
    Line MyLine1(1,1,2,1);
    Line MyLine2(2,2,2,2);
    Line ResLine(0,0,0,0);
    ResLine=MyLine1+MyLine2;
    cout<<ResLine.GetLength();
    _getch();
    }
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    тут 1 аргумент:
    Код:
    Line operator + (Line);
    тут 2:
    Код:
    Line Line::operator+ (Line l1,Line l2)
    {
    Line tmp(l1.Getpoint1x()+l2.Getpoint1x(),l1.Getpoint1y()+l2.Getpoint1y(),l1.Getpoint2x()+l2.Getpoint2x(),l1.Getpoint2y()+l2.Getpoint2y());
    return tmp;
    }
    надо исправлять
     
Загрузка...
Похожие Темы - Перегрузка Операции Сложения
  1. lisica198808
    Ответов:
    0
    Просмотров:
    1.067
  2. LetMeFun
    Ответов:
    1
    Просмотров:
    1.323
  3. MGeorge
    Ответов:
    0
    Просмотров:
    1.439
  4. zuzuzuz
    Ответов:
    1
    Просмотров:
    1.863
  5. sasha465
    Ответов:
    1
    Просмотров:
    1.522
Статус темы:
Закрыта.

Поделиться этой страницей