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

Инициализация статического массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, возвращающая текущую дату http://www.cyberforum.ru/cpp-beginners/thread291447.html
никак толком не могу разобратса с библиотекой time.h можите сказать точную функцию которая возвратит текущую дату и какие аргументы она принемает , и не в формате строки... а то что то у меня не выходит с time() ничего...
C++ Сосчитать количество единиц Сосчитать количество единиц в двоичной записи числа i. http://www.cyberforum.ru/cpp-beginners/thread291435.html
Умножение матрицы S+1 раз C++
Всем привет! помогите пожалуйста решить задачку на С++: 1. умножение матрицы самой на себя s+1 раз 2.умножение матрицы на вектор произвольный ( можно взять Е-единич.) 3.(умножение матрицы,умноженной на себя s+1 раз, на произвольный вектор ) / ( матрица степени s * произвольный вектор) //обеспечить хранение матрицы s и матрицы s+1.
C++ Определить количество повторений
Определить количество повторений каждой из цифр 1,2...9 в числе N в степени N, N<=1000
C++ У покупателя есть n монет достоинством H(1)...H(n) http://www.cyberforum.ru/cpp-beginners/thread291426.html
У покупателя есть n монет достоинством H(1)...H(n). У продавца есть m монет достоинством B(1)...B(l). Может ли купить покупатель вещь стоимостью S так, чтобы у продавца нашлась точная сдача (если она необходима)
C++ Константа. Надо найти константу(количество строк) в будущей матрице, если известно сколько элементов будет и количество столбцов. И тогда как записать константу выражением, или оператором? ОЧЕНЬ нужно. А то бьюсь уже с этой константой, все остальное сделал. Спасибо. подробнее

Показать сообщение отдельно
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
13.05.2011, 13:09  [ТС]     Инициализация статического массива
cWnd.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
#ifndef _cWnd_H_
#define _cWnd_H_
 
#include <Windows.h>
 
class cWnd
{
public:
    cWnd(LPCTSTR, HINSTANCE, int, LRESULT (WINAPI *pWndProc)(HWND,UINT,WPARAM,LPARAM),\
        LPCTSTR lpszMenuName = NULL, int x = CW_USEDEFAULT, int y = 0, int width = CW_USEDEFAULT, int height = 0,\
        UINT uCstyle = CS_HREDRAW | CS_VREDRAW, DWORD dwWstyle = WS_OVERLAPPEDWINDOW, HWND hWndParent = NULL);
    ~cWnd();
    HWND getHwnd()
    {
        return hWnd;
    }
    public:
    HWND hWnd;
    WNDCLASSEX wc;
    extern const wchar_t lpszClassName [];
};
 
#endif
cWnd.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
#include "cWnd.h"
#include <Windows.h>
 
const wchar_t lpszClassName [] = L"cWndClass";
 
cWnd::cWnd(LPCTSTR lpszWndName, HINSTANCE hInstance, int nCmdShow,\
           LRESULT (WINAPI *pWndProc)(HWND,UINT,WPARAM,LPARAM),\
           LPCTSTR lpszMenuName, int x, int y, int width, int height,\
           UINT uCstyle, DWORD dwWstyle, HWND hWndParent)
{
    wc.cbSize         = sizeof(wc);
    wc.style          = uCstyle;
    wc.lpfnWndProc    = pWndProc;
    wc.cbWndExtra     = 0;
    wc.cbClsExtra     = 0;
    wc.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.hCursor        = LoadCursor(NULL,IDC_ARROW);
    wc.hIcon          = LoadIcon(NULL,IDI_APPLICATION);
    wc.hIconSm        = LoadIcon(NULL,IDI_APPLICATION);
    wc.hInstance      = hInstance;
    wc.lpszClassName  = lpszClassName;
    wc.lpszMenuName   = lpszMenuName;
 
    if(!RegisterClassEx(&wc))
    {
        wchar_t msg [40] = L"Cannot register class ";
        wcscat_s(msg,lpszClassName);
        MessageBox(NULL, msg, L"Error", MB_OK);
        return;
    }
 
    hWnd = CreateWindow(lpszClassName, lpszWndName, dwWstyle, x, y, width, height, hWndParent, (HMENU)NULL, hInstance, (LPARAM)NULL);
 
    if(!hWnd)
    {
        wchar_t msg [40] = L"Cannot create window ";
        wcscat_s(msg,lpszWndName);
        MessageBox(NULL, msg, L"Error", MB_OK);
        return;
    }
 
    ShowWindow(hWnd, nCmdShow);
}
 
 
cWnd::~cWnd()
{
}
main.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
#include "cWnd.h"
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MSG msg;
 
    cWnd mainWnd(L"Hello2 application", hInstance, nCmdShow, WndProc);
 
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rc;
    int userResponse;
 
    switch(uMsg)
    {
    case WM_PAINT:
        hDC = BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rc);
        DrawText(hDC, L"Aloha, world!", -1, &rc, DT_VCENTER | DT_CENTER | DT_SINGLELINE);
        EndPaint(hWnd, &ps);
        break;
    case WM_CLOSE:
        userResponse = MessageBox(hWnd, L"Do you really want to quit?",L"Attention!", MB_YESNO | MB_ICONQUESTION);
        if(userResponse == (int)IDYES)
            DestroyWindow(hWnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
 
    default:
        return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
 
    return 0;
}
И ещё один момент.
То есть static - модификатор имеет следующие применения:
1. Как глобальная переменная, обращение к которой возможно из определённого блока (если в stdafx.h, то для всей программы; если в функции, то внутри этой ф-ции и т.д.), но при этом предыдущее значение сохраняется при каждом входе в этот блок.
2. Как следствие из 1-го, переменная static будет видна только в модуле, где она определена (т.е. имеется множество файлов, но переменная определена в файле f1.h, то только в этом файле к ней будет доступ открыт)
3. Как поле класса. Переменная глобальна, но видна только методам данного класса. Глобальность при этом подразумевает время жизни, равное времени жизни всей программы.
Правильно ли выстроил понятие о static'e?
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru