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

Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Копировать элемент из массива в массив http://www.cyberforum.ru/cpp-beginners/thread1182913.html
У меня есть два динамические массивы skydiver **mas=new skydiver* skydiver **masinplane=new skydiver* Первый массив содержит следующие элементы. mas=new skydiverpro("Михайло",200,400,0,0);all++; mas=new skydiverbuff("Олександр",400,400,0,0);all++;
C++ Описать класс, реализующий тип данных "вещественная матрица" Задание: Описать класс, реализующий тип данных "вещественная матрица" и работу с ними. Класс должен реализовывать следующие операции над матрицами: 1. Методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная). 2. Операции сравнения на равенство и неравенство. 3. Доступ к элементу по индексам Написать... http://www.cyberforum.ru/cpp-beginners/thread1182905.html
C++ Для знающих. Создаю меню в Borland C++, но что-то не работает, кто подскажет.что не так
Файл с программой прилагается. меню из 4 пунктов но почему то не отображает их, кто сможет исправьте и отправите правильный вариант. Заранее спасибо
C++ Динамический массив и объекты в нем, полиморфизм
У меня есть два динамические массивы skydiver **mas=new skydiver* skydiver **masinplane=new skydiver* Первый массив содержит следующие элементы. mas=new skydiverpro("Михайло",200,400,0,0);all++; mas=new skydiverbuff("Олександр",400,400,0,0);all++; mas=new skydiver("Тимур",700,280,400,0);all++;
C++ Дайте совет по продолжению обучения http://www.cyberforum.ru/cpp-beginners/thread1182885.html
Сейчас учусь на первом курсе комп.инженерии.Уже прошли делфи- сечас группа учит С++, а мне этот язык показался очень интересным и я усердно его изучаю !).. Пока группа только начинает учить массиви ,я уже пытаюсь експерементировать с наследием и полиморфизмом . Но предо мной стал вопрос , а что учить дальше ?: переходить на шарп ,Qt,Продолжать MFC? , просто не знаю что дальше учить .. нет цели .....
C++ Разложение cosec в ряд тейлора Помогите пожалуйста решить проблему. Нужно написать программу, которая вычисляет значение cosec с некоторой погрешность (epsilon) с помощью разложения в ряд Тейлора. Мой вариант double cosec_func(double X, double epsilon) {double n=0,sum=0; while(abs(f(n,sum)-f(n+1,sum))<epsilon) { sum=f(n,sum); подробнее

Показать сообщение отдельно
tyna
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 65
21.05.2014, 00:43     Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle
Есть класс Point (элементы данных x,y) и класс Circle (элементы данных р(типа Point),r).
Их заголовочные файлы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Point {
private:
    double x, y;
public:
    Point();
    Point(double a, double b);
    Point(const Point &obj);
    Point move(double a, double b);
    Point assign(const Point &obj);
    friend void print(const Point &obj);
    double get_x() { return x; }
    double get_y() { return y; }
    void put_x(double a) { x = a; }
    void put_y(double a) { y = a; }
    _declspec(property(get=get_x, put=put_x)) double X;
    _declspec(property(get=get_y, put=put_y)) double Y;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using namespace std;
class Circle {
private:
    Point p;
    double r;
public:
    Circle();
    Circle(Point &obj, double rad);
    Circle(const Circle &c);
    double square() const;
    Circle operator=(Circle &c);
    Circle operator+=(Circle &c);
    friend ostream& operator<<(ostream& s, Circle &c);
};
И файлы исходного кода:
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
#include <iostream>
#include "point.h"
using namespace std;
Point::Point() {
    x = 0;
    y = 0;
}
Point::Point(double a, double b) {
    x = a;
    y = b;
}
Point::Point(const Point &obj) {
    x = obj.x;
    y = obj.y;
}
Point Point::move(double a, double b) {
    x = a;
    y = b;
    return *this;
}
Point Point::assign(const Point &obj) {
    x = obj.x;
    y = obj.y;
    return *this;
}
void print(const Point &obj) {
    cout << "x: " << obj.x << ", y: " << obj.y << endl;
}
это для класса Point
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
#include <iostream>
#include "circle.h"
using namespace std;
Circle::Circle ():p(),r(){}
Circle::Circle(const Point &obj, double rad) :p(obj),r(rad){}
Circle::Circle(const Circle &c) : p(c){}
double Circle::square() const
{
    return 3.14*r*r;
}
 Circle Circle::operator=(const Circle&c)
{
     p.get_x() = c.p.get_x();
     p.get_y() = c.p.get_y();
    r = c.r;
    return (*this);
}
 Circle Circle::operator+=(Circle&c)
 {
     p.get_x() = p.get_x() + c.p.get_x();
     p.get_y() = p.get_y() + c.p.get_y();
     r = r + c.r;
     return(*this);
 }
Так пробую, не получается...
Что тут нужно изменить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru