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

Своеборазное переопределение статических членов в потомках - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу которая определяет максимальное число http://www.cyberforum.ru/cpp-beginners/thread1210249.html
написать программу которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел длина последовательности не ограничена.... помогите пожалуйста
C++ С2248 и Френдфункция? Добрый день, казалось бы вчера допилил лабу(не без помощи форумчан,за которую признателен) , но возникла проблема. В проге есть два класса, вектор и матрица. Матрица - массив векторов. Собственно, требуется реализовать оператор <<, для Вектора его реализовать у меня получилось. Для матрицы его выразил корректно(как мне кажется), но программа не получает доступа к приватным элементам n и ... http://www.cyberforum.ru/cpp-beginners/thread1210225.html
C++ Как верно узнать размер указателя ?
СBaseTest* pTest = { new СBaseTest, new СOther }; Нужно узнать размер pTest
C++ Преобразовать массив так чтобы все ненулевые элементы предшествовали нулевым
Задан массив целых чисел, среди которых есть 0. Преобразовать массив так чтобы все ненулевые элементы предшествовали нулевым
C++ Создайте функцию нахождения количества элементов одномерного массива, по модулю превосходящего введенное http://www.cyberforum.ru/cpp-beginners/thread1210177.html
Помогите пожалуйста!!! Создайте функцию нахождения количества элементов одномерного массив, по модулю превосходящего введенное с клавиатуры значение k. Примените функцию к целочисленным массивам A(N), B(M), где N и M - заданы.
C++ Как правильно освободить память Написал вот такой костыль: wchar_t* getDate() { time_t seconds = time(NULL); tm timeinfo = *(localtime(&seconds)); return _wasctime(&timeinfo); }; Теперь его использую в main: подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,648
19.06.2014, 12:08     Своеборазное переопределение статических членов в потомках
Цитата Сообщение от 0x10 Посмотреть сообщение
Да понятно, что тут речь не о наследовании.
Ну, для решения проблемы автора наследование как раз необходимо, только не от зверушек всяких, а от класса визуального объекта.
Вот так, например, можно:
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
56
57
58
59
60
61
/////////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
class  T_visual_obj
{
public:
    virtual     T_str   get_visual_traits()     =   0;
    //-----------------------------------------------------------------------------------
    virtual     ~T_visual_obj() {}
};
/////////////////////////////////////////////////////////////////////////////////////////
class  T_fish   :   public  T_visual_obj
{
public:
    virtual     T_str   get_visual_traits()
    {
        return  "рыба";
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
class  T_horse  :   public  T_visual_obj
{
public:
    virtual     T_str   get_visual_traits()
    {
        return  "лошадь";
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    std::locale::global(std::locale(""));
    srand( unsigned( time(0) ) );
 
    T_visual_obj*   visual_obj_p    =   0;
 
    for(;;)
    {
        if( rand() % 2 )
        {
            visual_obj_p    =   new     T_fish;
        }
        else
        {
            visual_obj_p    =   new     T_horse;
        }
 
        std::cout   <<  "\n\n\n\n\n\nОтображается "
                    <<  visual_obj_p->get_visual_traits()
                    <<  "."
                    <<  std::endl;
 
        delete  visual_obj_p;
        system( "pause" );
    }//for
}
 
Текущее время: 02:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru