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

Указатель на бызовый абстрактный класс. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ преобразвоание int в char. речь не про atoi http://www.cyberforum.ru/cpp-beginners/thread189214.html
помогите разобраться, как происходит преобразование из int в char. например: int i =1000; char k=232; cout<<(int)k;каким образом на экран выводится -24. и почему на одном компутере выводится знак...
C++ Динамический массив в Конструкторе Формы Такс это в юните: #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "MYDLL.cpp" float **a; float *x; int n=5; http://www.cyberforum.ru/cpp-beginners/thread189202.html
СИ: Вывод отдельно заглавных и прописных букв из строки C++
Нужно написать задачу на СИ, задание следущее: с клавиатуры вводится случайная строка. На экран выводятся раздельно заглавные и прописные буквы(в том же порядке). пример: строка: "1asd56ASaqrRT"...
C++ Сколько дней осталось до конца года?
Написать програму которая спрашивает у пользователя дату в формате ДД ММ ГГГГ и вычисляет сколько дней осталось до конца года. Я сначала хотел по простому, но наверное не выйдет, а массивом...
C++ Class stalker http://www.cyberforum.ru/cpp-beginners/thread189169.html
Здравствуйте Помогите с созданием классов пожалуйста Заранее спасибо Написать программу на языке C++, моделирующую поведение сборщика арте- фактов (Stalker) путём создания соответствующего...
C++ Как работает данная программа изучаю тему преобразования типов (в данном случае тип Counter преобразуется в int) и вот набрала код из книги, но не понимаю как он работает и почему: #include <iostream> class Counter {... подробнее

Показать сообщение отдельно
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 305

Указатель на бызовый абстрактный класс. - C++

10.11.2010, 21:18. Просмотров 3110. Ответов 30
Метки (Все метки)

Правильно ли у меня написан "умный" указатель? Напонятно, как можно с помощью указателя на базовый класс вызывать методы производных классов ( все указатели должны быть "умными").
Т.е. если бы они были простыми, а не "умными" сделал бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
base *p;
       first fst;
       second snd;
 
       p=&fst;
       p->AddDate();
       p->WeightSort();
       p->print();
  
       p = &snd;
       p->AddDate();
       p->print();
//1.cpp Smart pointer (Умный указатель)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A
{
private:
    int count;
public:
    A(){ count =0;}
    void add(){ count ++;}
    void del(){ if(--count==NULL) delete this;}
};
class Aptr
{
private:
    A *aptr;
public:
    Aptr(A *p) { aptr=p; p->add();}
    ~Aptr(){ aptr->del();}
    A * operator ->() {return aptr;}
};
// 2.cpp базовый абстрактный и 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
class base
{
public:
    int n;
    base(){n=0;}
    virtual ~base(){}
    virtual void AddDate()=0;
    virtual void print()=0;
    virtual void WeightSort(){}
};
class first:public base
{
public:
    first(){naznachenie=NULL; weight=NULL;}
    virtual ~first();
    void AddDate();
    void print(){}
    void WeightSort(); 
private:
    char **naznachenie;
    int *weight;
};
class second:public base
{
public:
    second(){adress=NULL;}
    virtual ~second();
     void AddDate();
    void print(){}
private:
    char **name;
    char **adress;
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru