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

Классы и полиморфизм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несколько функций в одной программе http://www.cyberforum.ru/cpp-beginners/thread17423.html
Проблема такая. Пишу программу, хочу, чтобы при выборе определенного номера (задания) программа переходила к этому заданию. Напечатал на С++. Она мне, ну что, типо, вводи свое значение. А я ей: 1....
C++ Определить процент элементов с неотрицательными значениями в одномерном массиве В общем я на первом курсе и в програминге практически не разбираюсь. Пытался выполнить задание, но ничего не получилось. Если знаете, помогите пожалуйста. Заранее спасибо. Задание такое:... http://www.cyberforum.ru/cpp-beginners/thread17422.html
C++ Код, работающий в VS2003, перестаёт работать в VS2008
#include "stdafx.h" #include <complex> #include <iostream> #include "math.h" #include <conio.h> #include <atlstr.h> #define PI 3.14159265 //#include <fstream> using namespace std; CString...
Интегралы в С++ C++
663. Даны действительные числа s, t, многочлен P(x) степени n. Найти значение t ∫P(x)dx s
C++ Чтение матрицы "по спирали" http://www.cyberforum.ru/cpp-beginners/thread17387.html
Чтобы зашифровать текст из 121 буквы, его можно записать в квадратную матрицу порядка 11 по строкам, а затем прочитать по спирали, начиная с центра (т. е. с элемента, имеющего индексы 6, 6 ). а)...
C++ геометрия :help::help: Даны действительные числа x, y. Вычислить расстояние от точки плоскости с координатами (x, y) до границы квадрата * с вершинами: а) (–0.5, –0.5), (–0.5, 0.5), (0.5, 0.5), (0.5,... подробнее

Показать сообщение отдельно
Alexen
5 / 5 / 0
Регистрация: 14.11.2008
Сообщений: 77

Классы и полиморфизм - C++

04.12.2008, 00:50. Просмотров 3035. Ответов 2
Метки (Все метки)

Я учел свои ошибки из прошлых топиков и за ответы СПС.
Хочу еще спросить а то путаюсь еще.
Если я в классах вместо наследования использую полиморфизм то классы не обязательно объявлять друзьями? (мона использовать объект созданый при объявлении
полиморфизма в классе Circle как указатель на другой класс Point для дальнейшей работы с элементами класса Point (x, y) в классе Circle?)
Circle.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Circle
{
 friend ostream &operator <<(ostream &, const Circle &);
 public:
 Circle (float = 0, float = 0, float = 0);
 
  void setRadius(float);
  float getRadius() const{return radius;}
  float getArea();
  float getX() const;
  float getY() const;
 
 private:
 Point setPoint;
  float radius;
  float area;
};
Point h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Point
{
 friend ostream &operator<<(ostream &, const Point &);
 friend class Circle;
 
 public:
 
 Point (float = 0.0, float = 0.0);
 
 void setPoint(float, float);
 float getX() const {return x;}
 float getY() const {return y;}
 
private:
float x;
float y;
};
И правильно ли я определил и использовал функции
(float Circle::getX() const, float Circle::getY() const)
классы должны работать как друзья. (но почему снова используется объект класса
Point ? или в другом классе если он тоже друг обязательно создавать объект дружественного ему класса чтоб сослаться через него.)



Circle.cpp

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
Circle::Circle(float r, float x, float y)
:setPoint(x, y)
{
 setRadius(r);
}
 
void Circle::setRadius(float r)
{radius = r;}
 
float Circle::getArea()
{
 area = 3.14159 * radius*radius;
 return area;
}
 
 
float Circle::getX() const
{return setPoint.x;}
 
float Circle::getY() const
{return setPoint.y;}
 
 
ostream &operator<<(ostream &output, const Circle &c)
{
 
 
 output <<"Центр : [" << c.getX() << ", " << c.getY() << "]; Радиус = "
 << setiosflags(ios::showpoint) << setprecision(3)<< c.radius ;
 return output;
}
Добавлено через 4 минуты 38 секунд
И каким способом мона из одного класса вызвать открытые функции другого дружественного ему класса без переопределения функций.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru