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

Наследование и перегрузка методов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Картинка в виде двумерного массива пикселей http://www.cyberforum.ru/cpp-beginners/thread635226.html
Можно ли, засунув картинку в проект, получить её массив пикселей? Есть ли для этого какая-либо функция? Всё, что мне хочется, это взять картинку, формат которой предусматривает запись информации о пикселях последовательностями в 3 байта (без промежуточной информации) и засунуть туда лишний байт >:- E *хочу инфернальные картинки!!1* Добавлено через 3 часа 25 минут Есть идеи? ; (
C++ как исправить повреждением кучи Всем привет. Имеется такой кусок кода, который читает в условном формате дату из реестра и сохраняет её в структуру, где есть SYSTEMTIME: TCHAR * timeT=new TCHAR;//главные виновники, из-за низ вылетает в конце кода программа TCHAR * TempTimeT=new TCHAR; len=MAX_PATH; ZeroMemory(NUMBER, 15);//очищаем и создаем имя, по которому обратимся в реестр ZeroMemory(Name, 20);... http://www.cyberforum.ru/cpp-beginners/thread635204.html
C++ Сканирование экрана
Здравствуйте, нужна помощь новичку по winapi. Нужно сделать сканирование выбранной области экрана и запись результата в двумерный массив, где каждая ячейка это цвет в RGB. Делал через GetPixel, но это ужасно медленно. Читал про BitBlt но, к сожалению, не понял, как потом его в RGB переводить. Помогите пожалуйста, желательно с примером кодом. Спасибо. Добавлено через 1 час 3 минуты Уточню....
Площадь многоугольника C++
Необходимо вычислить площади двух многоугольников(ну а в дальнейшем проверить, лежит ли один из них в другом, пока мне это не надо) по известным вершинам. У меня получилось вот это."Это" не работает.Где ошибки? Заранее спасибо:) #include<iostream> #include<cstdlib> #include<cmath> using namespace std; float Ploshad(float x,float y, const int n); int main(){ int i,n1,n2; ...
C++ приоритет. странно http://www.cyberforum.ru/cpp-beginners/thread635171.html
привет всем прогерам С++ =) есть такой вопрос. Вроде ни чего сложного, но компилятор компилит это дело не так как ожидается. Есть такое предложение. IN = *block++ << 8; если указатель block ссылается на начало массива M M = {1,2,3,4,5,6,7,8,9,10}; То по таблице приоритетов сначала выполнится ++ затем * после << и только в конце будет =. В IN должно оказаться число 512:ireful:, НОоо...
C++ Перегрузка бинарной операции < Всем привет написал перегрузку для структуры: typedef struct t_FileInfo { t_String file_name; /*имя файла*/ t_String file_way; /*адрес к файлу*/ /*конструктор с параметрами*/ t_FileInfo(t_String fn = (""), t_String fw = ("")) : подробнее

Показать сообщение отдельно
moskitos80
 Аватар для moskitos80
39 / 39 / 0
Регистрация: 04.10.2011
Сообщений: 128
09.08.2012, 18:40  [ТС]     Наследование и перегрузка методов
ЗдОрово! Спасибо Jupiter А я не догадался так сделать Я вот уже зачем то и агрегацию приплёл... скажите в таком способе много недостатков:

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <iostream>
 
using namespace std;
 
////////////////////////////////////////////////////////////////////////////////
class CharStack
{
    protected :
        char *stack;
        int  sizeOf;
        int current;
 
    public :
        CharStack(int size) : sizeOf(size)
        {
            this->stack = new char [this->sizeOf];
        }
        ~CharStack()
        {
            delete [] this->stack;
        }
        void push(char ch)
        {
            this->stack[this->current++] = ch;
        }
        char pop(void)
        {
            return this->stack[--this->current];
        }
};
////////////////////////////////////////////////////////////////////////////////
class FloatStack
{
    protected :
        float *stack;
        int   sizeOf;
        int  current;
 
    public :
        FloatStack(int size) : sizeOf(size)
        {
            this->stack = new float [this->sizeOf];
        }
        ~FloatStack()
        {
            delete [] this->stack;
        }
        void push(float fl)
        {
            this->stack[this->current++] = fl;
        }
        float pop(void)
        {
            return this->stack[--this->current];
        }
};
////////////////////////////////////////////////////////////////////////////////
class Stack
{
    protected :
        int sizeOf;
        CharStack* chPtr;
        FloatStack* flPtr;
 
    public :
        Stack(int size) : sizeOf(0)
        {
            this->flPtr = new FloatStack(size);
            this->chPtr = new CharStack(size);
        }
        ~Stack()
        {
            delete this->flPtr;
            delete this->chPtr;
        }
        // äëÿ char
        void push(char ch)
        {
            this->sizeOf++;
            this->chPtr->push(ch);
        }
        char chPop(void)
        {
            this->sizeOf--;
            return this->chPtr->pop();
        }
        // äëÿ float
        void push(float fl)
        {
            this->sizeOf++;
            this->flPtr->push(fl);
        }
        float flPop(void)
        {
            this->sizeOf--;
            return this->flPtr->pop();
        }
 
        int getSize(void)
        {
            return this->sizeOf;
        }
};
////////////////////////////////////////////////////////////////////////////////
 
int main()
{
    Stack* stackPtr = new Stack(100);
 
    // LIFO
    stackPtr->push(50.5f);// 4
    stackPtr->push('+');  // 3
    stackPtr->push(100.f);// 2
    stackPtr->push('*');  // 1
    stackPtr->push(2.5f); // 0
 
    while (stackPtr->getSize()) {
        // Г—ВёГІГ*. ГЅГІГ® îïåðГ*òîðû, Г*ГҐ Г·ВёГІГ*. - ГЅГІГ® îïåðГ*Г*äû
        if (!(stackPtr->getSize() % 2)) {
            cout << "Operator " << stackPtr->chPop() << endl;
        } else {
            cout << "Operand  " << stackPtr->flPop() << endl;
        }
    }
 
    delete stackPtr;
 
    cout << endl;
    return 0;
}
Вот схема:
Наследование и перегрузка методов
 
Текущее время: 23:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru