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

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

Войти
Регистрация
Восстановить пароль
 
'HelloWorld'
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 31
#1

Абстрактные классы. Найти ошибку - C++

19.05.2011, 20:53. Просмотров 320. Ответов 4
Метки нет (Все метки)

Требуется реализовать базовый класс с виртуальным методом вывода на экран нужного объекта.
От базового класса наследуется 3 других класса. Нужно создать ещё один класс, который будет собирать нужную последовательность объектов и выводить на экран.
Помогите, пожалуйста, найти ошибку.
Класс, который будет собирать последовательность у меня содержит массив указателей на объекты.
C++
1
2
3
4
5
6
7
8
class Posled
{
public:
    CBase *p[3];
    void Add(CBase *);
    void Show();
    //методы add, show
};
Базовый класс
C++
1
2
3
4
5
6
7
class CBase
{
public:
    char name[20];
    char cch[10];
    virtual void Show()=0; //??????????
};
И методы класса Posled
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Posled::Add(CBase *)
{
    p[0] = new Class1;
    p[1] = new Class2;
    p[2] = new Class3;
}
void Posled::Show()
{
    p[0]->Show();
    p[1]->Show();
    p[2]->Show();
}
Функции Show(); для каждого класса также реализованы. Ошибка вот в чем: при вызове метода Add ошибка компиляции: Идентификатор Add не найден.
Вызываю метод вот так:
C++
1
2
3
Add(Class1[j]);
Add(Class2[m]);
Add(Class3[k]);
Объясните, пожалуйста, что не так.
С классами работаю впервые... Не знаю где накосячил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2011, 20:53     Абстрактные классы. Найти ошибку
Посмотрите здесь:

Абстрактные классы наследия. - C++
Ребят подскажите пожалуйста как мне написать чтобы в классе С виртуальные функции класса B заменялись функциями класса А. можно ли так...

Абстрактные базовые классы - C++
Не могу создать экземпляр производного от АБК класса: #pragma once class BaseEllips { private: double x; double y; public: ...

Наследование и абстрактные классы - C++
расскажите что это и с чем это едят......... а то как то встал на этом!!!

Наследование, абстрактные классы. - C++
Собственно нужно создать абстрактный базовый класс Shape, от него наследовать абстрактные классы Shape2D и Shape3D. От них конкретные...

Абстрактные классы. Наследование - C++
Здравствуйте! Препод дал задание на наследование и абстрактные классы. Кому не трудно, посмотрите, пожалуйста код, правильно ли я делаю? ...

абстрактные классы ошибка - C++
Здравствуйте. Помогите пожалуйста найти ошибку в программе с абстрактным классом. #include "stdafx.h"; int _tmain(int argc, _TCHAR*...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZiGSuN
27 / 27 / 2
Регистрация: 02.12.2009
Сообщений: 66
19.05.2011, 20:58     Абстрактные классы. Найти ошибку #2
насколько я понимаю нужно создать объект класса "Posled" и вызывать функцию так:
C++
1
2
3
4
5
 Posled A;
A.Add(Class1[j]);
A.Add(Class2[m]);
A.Add(Class3[k]);
;
'HelloWorld'
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 31
19.05.2011, 21:06  [ТС]     Абстрактные классы. Найти ошибку #3
хм...теперь ошибка Posled::Add: невозможно преобразовать параметр 1 из "Class1" в "CBase*"
ZiGSuN
27 / 27 / 2
Регистрация: 02.12.2009
Сообщений: 66
19.05.2011, 21:12     Абстрактные классы. Найти ошибку #4
C++
1
new Class
после new должен стоять тип!
может все исходники выложите а то не понятно что такое Class1.2.3 ! тогда можно надеятся на более эффективную помощь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 21:21     Абстрактные классы. Найти ошибку
Еще ссылки по теме:

Абстрактные классы и вычисление корней - C++
Это общее условие для задания: В следующих заданиях требуется реализовать абстрактный базовый класс, определив в нём чистые виртуальные...

Виртуальные абстрактные базовые классы - C++
Привет всем!:-) Вчера столкнулся со следующей проблемой: компилятор ругается на чистый виртуальный деструктор. Собственно листинги: ...

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

Абстрактные классы. Обьект в строку - C++
Всем доброго вечера, существует следующяя ситуация.. Есть абстрактный класс в котором вирутальная функция,она должна преобразовывать...


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

Или воспользуйтесь поиском по форуму:
'HelloWorld'
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 31
19.05.2011, 21:21  [ТС]     Абстрактные классы. Найти ошибку #5
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
#include <stdio.h>
#include <conio.h>
class CBase
{
public:
    char name[20];
    char cch[10];
    virtual void Show()=0;
};
class Class1 : public CBase
{
public:
    char param1[10];
    char param2[20];
        char vt[10];
    void Show();
};
class Class2 : public CBase
{
public:
    char sp[15];
    char l1[20];
    void Show();
};
class Class3 : public CBase
{
public:
    char conf1[20];
    char conf2[20];
    char conf3[20];
    void Show();
};
class Posled
{
public:
    CBase *p[3];
    void Add(CBase *);
    void Show();
};
Yandex
Объявления
19.05.2011, 21:21     Абстрактные классы. Найти ошибку
Ответ Создать тему
Опции темы

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