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

Не могу организовать иерархию классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Лабораторка Мозгаломка http://www.cyberforum.ru/cpp-beginners/thread1009910.html
7. Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt (один из самых простых методов решения этой задачи - деление пополам. Начинаем с отрезка . Берем его середину, возводим в квадрат и сравниваем с X. Если результат оказался больше, отбрасываем правую половину отрезка, иначе - левую и повторяем все с начала. Действуем...
C++ Наследование и виртуальные функции Всем привет. Может кто, пожалуйста, объяснить одну строчку из задания? Не понимаю, что именно нужно сделать. Само задание: Написать программу, в которой создается иерархия классов. Включить полиморфные объекты в связанный список, используя статические компоненты класса. Показать использование виртуальных функций. http://www.cyberforum.ru/cpp-beginners/thread1009900.html
Дан одномерный массив, состоящий из N целочисленных элементов C++
Дан одномерный массив, состоящий из N целочисленных элементов. 1. Заполнить массив случайными числами. 2. Найти максимальный положительный элемент. 3. Вычислить произведение нечетных элементов массива. 4. Вывести положительные элементы на экран. 5. Отсортировать массив методом выбора элементов и вывести отсортированный массив на экран.
Дружественная функция-оператор, доступ к закрытым полям класса C++
У меня есть класс MyClass, вот код: class MyClass { int x, y; public: MyClass(); friend ostream & operator << (ostream &, MyClass); friend istream& operator >> (istream &, MyClass); ~MyClass();
C++ Прата задача 6.9 http://www.cyberforum.ru/cpp-beginners/thread1009839.html
Всем доброго времени суток, подскажите как сделать что бы программа в строке 32 принимала имена с пробелами. Если открываю файл без пробелов в именах все корректо выводит. #include <iostream> #include <fstream> #include <string> #include <cstdlib> using std::string; struct Micenats { string Name;
C++ Супер Программа Вводятся числа a и b. Найти сумму таких чисел в диапазоне , которые при возведении в квадрат дают число с последней цифрой 6.С использованием Цикл с параметром (for) подробнее

Показать сообщение отдельно
LuxArt
33 / 20 / 2
Регистрация: 14.11.2013
Сообщений: 85
17.11.2013, 11:41     Не могу организовать иерархию классов
Всем привет!
Нужен совет как правильно сделать наследование.
Чтобы через указатель базового класса (Форма) можно было бы создать объект производного класса (Точка).
А так же чтобы можно было вызывать методы из производного.

Shapes.h
Кликните здесь для просмотра всего текста
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Shapes.h:
 
#ifndef SHAPES_H
#define SHAPES_H
#include <iostream>
 
 
class Shape
{
public:
    virtual ~Shape() {};
 
    virtual void PrintShapeName() const = 0;
    virtual void Print() const = 0;
    virtual double GetArea() const      { return 0.0; };
    virtual double GetVolume() const    { return 0.0; };
};
 
 
class Point : public Shape
{
private:
    double      m_x;
    double      m_y;
 
public:
    Point(double x=0.0,  double y=0.0);
    ~Point();
 
    void SetX(double x);
    void SetY(double y);
    void SetPoint(double x,  double y);
 
    double GetX() const;
    double GetY() const;
 
    virtual void PrintShapeName() const override;
    virtual void Print() const override;
};
 
 
class Circle : public Point
{
private:
    double      m_radius;
 
public:
    Circle(double x=0.0,  double y=0.0,  double radius=1.0);
    ~Circle();
 
    void SetRadius(double radius);
    double GetRadius() const;
};
 
#endif // SHAPES_H





main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <stdlib.h>
#include "include/Shapes.h"
 
 
int main()
{
    Shape   *shape;
 
    shape = new Point;
    shape->SetPoint(1.0, 1.0);  // Невозможно указать координаты точки! Этого метода нет в класса Shape
 
    system("pause");
    return 0;
}
Можно SetPoint() перенести в базовый, но мне не нравится эта идея. Каждый раз при добавлении нового класса придется вносить изменения в базовый

Дайте совет что делать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru