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

Доступ к данным потомка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задание http://www.cyberforum.ru/cpp-beginners/thread998205.html
помогите с ззаданием плюс к карме за помощь) за качество извините, задание до отметки ручкой. язык програмирования Си Пункт 4.12 Правил: Перепечатывайте задание на форум.
C++ Русские символы в массиве char имеется функция возвращающая массив байтов(символов), если данная строка английское слово то все нормально, иначе получается это:С„1Рё2СЃ3РІ4 Как привести русские символы к нормальному представлению? http://www.cyberforum.ru/cpp-beginners/thread998197.html
Битовые операции C++
Здравствуйте! нужно решить задачу: в целом числе заменить младший бит старшего байта на 1 решается ли это битовыми сдвигами? и если да, можно ли получить хотя бы идею, как это делать (пользоваться ли signed и unsigned, например?) заранее огромное спасибо!
C++ Сформировать массив из матрицы
Всем привет! Помогите составить мне программу: На основе исходного двумерного массива C с рабочим размером n x n, сформировать одномерный массив A. Массив A должен содержать только те числа, которые встречаются в массиве C только один раз. Упорядочить массив A по убыванию, используя метод выбора. Вывести массив A на экран. Массивы A и C должны состоять из целых чисел. Значение n, а также...
C++ Дано целочисленное n вычислить http://www.cyberforum.ru/cpp-beginners/thread998163.html
Дано целочисленное n вычислить
C++ Ошибка в программе #include <iostream> #include <math.h> #include <iomanip> #include <conio.h> using namespace std; int main() { const float k=0.2, PI=3.14; const short n=4; float x,c,g; подробнее

Показать сообщение отдельно
SwanSONG
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 36
05.11.2013, 11:53  [ТС]     Доступ к данным потомка
To ValeryS:

CMyPoint.h
Кликните здесь для просмотра всего текста
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
#pragma once
 
#include "afxwin.h"
 
class CMyPoint
{
public:
    CMyPoint(int iiType,int iiPos,int iiColor,int iLimit,int ix,int iy,int iR,int iG,int iB);
    ~CMyPoint();
 
    virtual void Show(CDC *xdc);
    virtual void Hide(CDC *xdc);
    virtual void xSetPrivate(void);
 
    void xSetCommon(int dx,int dy,int dR,int dG,int dB);
    void Move(int dx,int dy,int dR,int dG,int dB,CDC *xdc); 
 
    CDC *xdc;
 
    int idType,idPos,idColor;
    int xLimit,xCount;
    int x,y;
    int cR,cG,cB;
};


CMyPoint.cpp:
Кликните здесь для просмотра всего текста
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 "afxwin.h"
 
#include "CMyPoint.h"
#include "CMyPoint.h"
 
CMyPoint::CMyPoint(int iiType,int iiPos,int iiColor,int iLimit,int ix,int iy,int iR,int iG,int iB)
{
    idType=iiType;
    idPos=iiPos;
    idColor=iiColor;
 
    xLimit=iLimit;
    xCount=0;
    x=ix;
    y=iy;
    cR=iR;
    cG=iG;
    cB=iB;
}
 
CMyPoint::~CMyPoint()
{}
 
void CMyPoint::Show(CDC *xdc)
{
    xdc->SetPixel(x,y,RGB(cR,cG,cB));
}
 
void CMyPoint::Hide(CDC *xdc)
{
    xdc->SetPixel(x,y,RGB(6,38,77));
}
 
void CMyPoint::xSetCommon(int dx,int dy,int dR,int dG,int dB)
{
    x+=dx;
    y+=dy;
    cR+=dR;
    cG+=dG;
    cB+=dB;
}
 
void CMyPoint::xSetPrivate()
{
    xCount++;
    if(xCount>=xLimit)
    {
        xCount=0;
        x=rand()%1000;
        y=rand()%800;
        xLimit=rand()%600;
    }
}
 
void CMyPoint::Move(int dx,int dy,int dR,int dG,int dB, CDC *xdc)
{
    Hide(xdc);
    xSetCommon(dx,dy,dR,dG,dB);
    xSetPrivate();
    Show(xdc);
}


Производный
CMyFly.h:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
#include "cmypoint.h"
 
class CMyFly:public CMyPoint
{
public:
    CMyFly(int iiType,int iiPos,int iiColor,int iLimit,int ix,int iy,int cR,int cG,int cB);
    ~CMyFly();
 
    virtual void Show(CDC *xdc);
    virtual void Hide(CDC *xdc);
    virtual void xPrint(CDC *xdc);
    virtual void xSetPrivate(void);
 
    int xLimit;
    int xCount;
};


CMyFly.cpp
Кликните здесь для просмотра всего текста
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
#include "afxwin.h"
#include "CMyPoint.h"
#include "CMyFly.h"
 
CMyFly::CMyFly(int iiType,int iiPos,int iiColor,int iLimit,int ix,int iy,int iR,int iG, int iB):CMyPoint(iiType,iiPos,iiColor,iLimit,ix,iy,iR,iG,iB)
{
    xLimit=iLimit;
    xCount=0;
}
 
CMyFly::~CMyFly()
{}
 
void CMyFly::Show(CDC *xdc)
{
    xdc->SetPixel(x,y,RGB(cR,cG,cB));
}
 
void CMyFly::Hide(CDC *xdc)
{
    xdc->SetPixel(x,y,RGB(6,38,77));
}
 
void CMyFly::xPrint(CDC *xdc)
{}
 
void CMyFly::xSetPrivate()
{
    xCount++;
    if(xCount>=xLimit)
    {
        x=rand()%200+400;
        y=rand()%200+300;
        xCount=0;
 
        if((x>=500)&&(y<400))
            idPos=1;
        if((x>=500)&&(y>=400))
            idPos=2;
        if((x<500)&&(y>=400))
            idPos=3;
        if((x<500)&&(y<400))
            idPos=4;
    }
}

Другие производные классы - по аналогии

"виртуальные функции слыхал?"
"Слыхал", но ведь написал в начале: почти чайник и попросил на это сделать скидку
Какая тут связь? Я так понимаю, что желаемое можно получить через dynamic_cast, но я не могу понять, как
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru