Форум программистов, компьютерный форум 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) подробнее

Показать сообщение отдельно
агерон
 Аватар для агерон
265 / 264 / 33
Регистрация: 12.10.2009
Сообщений: 1,030
17.11.2013, 19:04     Не могу организовать иерархию классов
Вы не понимаете основ ООП, что такое базовый класс, через указатель базового класса вы НИКОГДА не вызовете тех функций классов потомков которые не определены как виртуальные в классе предке т. е.
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
class CBase
{
    public:
        virtual int GetBaseProperty();
        virtual void SetBaseProperty(int value);
}
 
class CExtended:public CBase
{
    public:
        virtual int GetBaseProperty() overidde;
        virtual void SetBaseProperty(int value) overidde;
        virtual int GetExtendedProperty() overidde;
        virtual void SetExtendedProperty(int value) overidde;               
} 
 
void main()
{
    CExtended *extended = new CExtended();
    CBase *base = extended;
    extended -> SetBaseProperty(5); //так можно     
    extended -> SetExtendedProperty(5); //и так можно 
    base->SetBaseProperty(5);// и так можно, т к класс СBase "знает" про SetBaseProperty, мы вызовем extended -> SetBaseProperty основываясь на VMT
    base->SetExtendedProperty(5) // а вот так нельзя т. к. класс CBase ничего "не знает" про SetExtendedProperty и это вызовет ошибку компиляции  
}
Добавлено через 1 минуту
Avazart, про фабрики ему читать пока рано пусть сперва выучит основы ООП
 
Текущее время: 00:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru