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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
#1

Классы и сабклассы - C++

08.02.2011, 09:37. Просмотров 642. Ответов 2
Метки нет (Все метки)

класс и сабклассы
чё-то я запутался, и не знаю как это сделать,
допустим у меня класс и 2 сабкласса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CMyClass
{
        public:
        int x;
};
 
CMySubClass1:public CMyClass
{
public:
        void Init()
        {
                x = 1;
        }
};
 
CMySubClass2:public CMyClass
{
public:
        void Init()
        {
                x = 2;
        }
};
делаю вот так, объявляю объекты:
CMySubClass1 sub1;
CMySubClass2 sub2;
массив:
CMyClass array[] = {sub1, sub2};
потом хочу вызвать функцию Init(), но там её попросту нет, очевидно потому, что массив создан CMyClass, а там эта функция не объявлена. Ну вот надо как-то сделать что бы из массива можно было вызвать эту функцию, при этом у sub1 x должен = 1, у sub2 x = 2 и т.д., кто может помочь?
PS удалите плиз эту тему
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2011, 09:37     Классы и сабклассы
Посмотрите здесь:

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include <iostream> class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

Классы - C++
Создать класс обработки паспортных данных. Добавить функции проверки корректности вводимых данных(даты,возраста и т.д.) Требования: ...

классы - C++
сделать класс - пасьянс, в котором выбирают по три карты и, если две крайние одного цвета, то их выкидывают. Всю колоду проходят три раза....

Классы - C++
Граждане, кому нетяжело и кто не занят, помогите со следующим заданием: С применением классов: конструктора, деструктора, конструктора по...

классы - C++
Не компилируется, помогите #include <iostream> #include <cstdlib> #include <vector> #include <map> // ��������� �������� ...

классы - C++
Нужно написать программу с помощью класса Пожалуйста нужна ваша помощь

классы - C++
1)Разработайте класс, моделирующий вектора в трехмерном евклидовом пространстве с возможностью выполнения операций сложения, вычитания,...

Классы - C++
Доброго всем времени суток.Пожалуйста помогите разобраться с классами.Не идут они у меня.Объяснить не кому,а просто читать и делать...

Классы - C++
Пожалуйста помогите разобраться не получается класс с указателями на функции. #include <stdlib.h> #include "iostream" using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2011, 10:17     Классы и сабклассы #2
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
#include<iostream>
`
class CMyClass
{
public:
    int x;
    virtual void Init() = 0; 
}; 
 
class CMySubClass1:public CMyClass
{
public:
    void Init()
    {
        x = 1; 
    }
}; 
 
class CMySubClass2:public CMyClass
{
public:
    void Init()
    {
        x = 2; 
    }
}; 
 
int main(int argc, char *argv[])
{
    CMySubClass1 sub1; 
    CMySubClass2 sub2; 
    CMyClass *array[] = {&sub1,  &sub2};
    for(int i=0; i<2; ++i)
    {
        array[i]->Init();
        std::cout << array[i]->x << std::endl; 
    }
}
Xtir
11 / 11 / 0
Регистрация: 10.07.2010
Сообщений: 130
09.02.2011, 08:56  [ТС]     Классы и сабклассы #3
немного ошибся, а как в таком случае теперь вызвать конструктор мэйн класса?
C++
1
2
3
4
5
6
7
8
9
10
class CMyClass
{
public:
    int x;
    virtual void Init() = 0; 
 
   CMyCLass()
   {
   }
};
а то создание объекта мэйн класса приводит к таким ошибкам
Код
error C2259: 'CMyClass' : cannot instantiate abstract class due to following members:
see declaration of 'CMyClass'
warning C4259: 'void __thiscall CMyClass::Init(void)' : pure virtual function was not defined
see declaration of 'Init'
всё, разобрался, даже не надо никаких объектов мэйн класса создавать что бы вызвать его конструктор
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru