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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несколько функций в одной программе http://www.cyberforum.ru/cpp-beginners/thread17423.html
Проблема такая. Пишу программу, хочу, чтобы при выборе определенного номера (задания) программа переходила к этому заданию. Напечатал на С++. Она мне, ну что, типо, вводи свое значение. А я ей: 1. Она мне вместо того, чтобы написать task_1 как я ее прошу предлагает нажать на клавишу для выхода. Вроде что-то легкое, но не дохожу. Объясните, что не так. Сам код: #include<stdio.h> void...
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 filename(CString mask_name1,CString filename1); http://www.cyberforum.ru/cpp-beginners/thread17402.html
Интегралы в С++ C++
663. Даны действительные числа s, t, многочлен P(x) степени n. Найти значение t ∫P(x)dx s
Чтение матрицы "по спирали" C++
Чтобы зашифровать текст из 121 буквы, его можно записать в квадратную матрицу порядка 11 по строкам, а затем прочитать по спирали, начиная с центра (т. е. с элемента, имеющего индексы 6, 6 ). а) Зашифровать данный текст. б) Расшифровать данный текст.
C++ геометрия http://www.cyberforum.ru/cpp-beginners/thread17386.html
:help::help: Даны действительные числа x, y. Вычислить расстояние от точки плоскости с координатами (x, y) до границы квадрата * с вершинами: а) (–0.5, –0.5), (–0.5, 0.5), (0.5, 0.5), (0.5, –0.5); б) (0, 0), (0, 1), (1, 1), (1, 0). * То есть минимальное расстояние от данной точки до ближайшей точки границы квадрата.
C++ Помогите. Срочно. задача по с++: вводится 5-ное число Помогите решить 2 задачи. надо сделать сегодня(( 1 задача: Вводится пятизначное число, если сумма его цифр нечетная то выполнить зеркальную перестановку цифр( ну то есть 1 с 5 поменять, 2 с 4). Задачу надо в двух вариантах. 1 вариант: перестановку сделать в виде функции(массивы использовать нельзя) 2 вариант: сделать уже с массивами 2 задача: настройка объекта(элемента двумерного... подробнее

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

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

04.12.2008, 00:50. Просмотров 3017. Ответов 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 секунд
И каким способом мона из одного класса вызвать открытые функции другого дружественного ему класса без переопределения функций.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru