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

Классы. Наследование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Сканирование" текста в файле. http://www.cyberforum.ru/cpp-beginners/thread118298.html
Доброго времени суток. Нужно вывести текст в файл,после чего "просканировать " текст на предмет слов yes или no и,если таковые имеются,заменить их на no или yes соответственно. Код,выводящий текст в файл я написал,а вот как сделать поиск - понять не могу (( Если я правильно понял задание - новый текст нужно вывести в другой файл. Помогите,пожалуйста. И еще,у меня почему-то из всего...
C++ Лабораторная по структурам и указателям Доброго времени суток. Скорее моя проблема в чем то простом для Вас(сам я никогда до этого не имел дела с С++ ) . После C# мне не понятно как работать здесь с памятью, знаю только что функция не может вернуть массив, попытался выкрутиться с помощью указателя - ошибка выполнения ... Задача такова - определить структуру для сохранения информации об успеваемости студентов первокурсников в течении... http://www.cyberforum.ru/cpp-beginners/thread118291.html
C++ (Двоич. число, тип) => знач.
Доброго времени суток. Помогите пожалуйста вот с такой задачкой: "По заданным двоичному представлению числа и типу данных (минимум - int, float) вывести значение переменной данного типа" Вот мои наметки. Трудность составила функция, никак не могу правильно написать ее =( #include "stdafx.h" #include <iostream> using namespace std; const int n=32; void print(const unsigned char* data, size_t...
Заменить все последовательности символов 'on' на 'online' C++
Дана символьная строка. Заменить все последовательности символов 'on' на 'online' и вывести новую строку (если искомой последовательности в строке нет, то вывести соответствующее сообщение). Добавлено через 3 минуты #include <iostream> #include <iomanip> #include <cmath> #include <cstring> using namespace std; void Method(char *mas){
C++ не открывается mdi-окно http://www.cyberforum.ru/cpp-beginners/thread118266.html
устал уже биться: mdi-приложение запускается, но не запускается дочернее mdi-окно: меню File=>New. Похоже он создается, но его не видно почему-то. Вот код и код ресурса: #include <windows.h> #include "mditest.h" HWND hWndClient = NULL; HINSTANCE hInst; // current instance
C++ Чтение данных из файла содержащего комментарии. С++ Здравствуйте! Есть файл содержащий слова. Так же в этом файле есть комментарии идущие после "--" пример: word1 word2 word3 -- comment --comment -------------------- word4 word5--comment подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.04.2010, 13:14  [ТС]     Классы. Наследование
Цитата Сообщение от Evg Посмотреть сообщение
Тему полностью не читал, но проблема в следующем. В результате наследования метод Create действительно может обращаться к m_hWnd. Но только при работе с текущим экземпляром (this). В твоём случае ты работаешь через чужой экземпляр (тот, который пришёл тебе параметром), а любой другой экземпляр кроме this работает ровно так, как если бы он в обычной процедуре (а не методе класса)
Спасибо, с этим мы уже разобрались =)

Добавлено через 1 час 43 минуты
Решил остановиться на таком варианте, вот код со всеми параметрами:
CWindow
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
/*--------------------------------------------------------------+
|                            CWindow                            |
+--------------------------------------------------------------*/
class CWindow
{
   public:
      CWindow();
      
      // Class Name
      static LPCTSTR GetClassName();
      
      // Window Handle
      BOOL Create(HWND hParent = NULL, int x = CW_USEDEFAULT, int y = CW_USEDEFAULT, 
                  int cx = CW_USEDEFAULT, int cy = CW_USEDEFAULT, 
                  DWORD dwStyle = NULL, DWORD dwExStyle = NULL, 
                  LPCTSTR lpClassName = NULL, LPCTSTR lpWindowName = NULL, 
                  HMENU hMenu = NULL, HINSTANCE hInst = NULL, LPVOID lpParam = NULL);
      
      // Window States
      BOOL Show(int nShow = SW_SHOW);
      BOOL Update();    
       
      // Childs & Parents
      BOOL AddChild(CWindow * w, int x, int y, int cx, int cy, 
                    DWORD dwStyle = 0, DWORD dwExStyle = 0, 
                    LPCTSTR lpClassName = 0, LPCTSTR lpWindowName = 0, 
                    HMENU hMenu = 0, HINSTANCE hInst = 0, LPVOID lpParam = 0);
       
   protected:
      HWND m_hWnd;
};
 
/*--------------------------------------------------------------+
|                            CWindow                            |
+--------------------------------------------------------------*/
CWindow::CWindow() : m_hWnd(NULL)
{   
}
 
/*------------------------- Class Name ------------------------*/
 
LPCTSTR CRich::GetClassName()       
{
   return NULL;
}
 
/*------------------------ Window Handle ----------------------*/
 
BOOL CWindow::Create(HWND hParent, int x, int y, int cx, int cy, 
                     DWORD dwStyle, DWORD dwExStyle, 
                     LPCSTR lpClassName, LPCTSTR lpWindowName, 
                     HMENU hMenu, HINSTANCE hInst, LPVOID lpParam)
{
   if(!m_hWnd)
      m_hWnd = ::CreateWindowEx(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, cx, cy, hParent, hMenu, hInst, lpParam);
 
   return (m_hWnd != NULL);
}
 
/*-------------------- Show, Update, State --------------------*/
 
BOOL CWindow::Show(int nShow /* = SW_SHOW */)   
{   
   return ::ShowWindow(m_hWnd, nShow);  
}
 
BOOL CWindow::Update()              
{   
   return ::UpdateWindow(m_hWnd);       
}
 
/*--------------------- Childs and Parents --------------------*/
 
BOOL CWindow::AddChild(CWindow * w, int x, int y, int cx, int cy, 
                       DWORD dwStyle, DWORD dwExStyle, 
                       LPCTSTR lpClassName, LPCTSTR lpWindowName, 
                       HMENU hMenu, HINSTANCE hInst, LPVOID lpParam)
{
   return w->Create(m_hWnd, x, y, cx, cy, dwStyle | WS_CHILD, dwExStyle, lpClassName, lpWindowName, hMenu, hInst, lpParam);
}


CRich
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
/*--------------------------------------------------------------+
|                             CRich                             |
+--------------------------------------------------------------*/
class CRich : public CWindow
{
   public:
      CRich();
 
      // Class Name
      static LPCTSTR GetClassName();
 
      // Create the Window Handle
      BOOL Create(CWindow * Parent, int x, int y, int cx, int cy, DWORD dwStyle = 0, DWORD dwExStyle = 0, 
                  LPCTSTR lpWindowName = 0, HMENU hMenu = 0, HINSTANCE hInst = 0, LPVOID lpParam = 0);
};
 
/*--------------------------------------------------------------+
|                             CRich                             |
+--------------------------------------------------------------*/
CRich::CRich() : CWindow()
{
}
 
/*------------------------- Class Name ------------------------*/
 
LPCTSTR CRich::GetClassName()       
{
   return RICHEDIT_CLASS;
}
 
/*------------------------ Window Handle ----------------------*/
 
BOOL CRich::Create(CWindow * Parent, int x, int y, int cx, int cy, DWORD dwStyle, DWORD dwExStyle, 
                   LPCTSTR lpWindowName, HMENU hMenu, HINSTANCE hInst, LPVOID lpParam)
{
   return Parent->AddChild(this, x, y, cx, cy, dwStyle, dwExStyle, GetClassName(), lpWindowName, hMenu, hInst, lpParam);
}


C++
1
2
3
4
5
6
7
CWindow wMain;
wMain.Create(0, CW_USEDEFAULT, CW_USEDEFAULT, 800, 800, WS_OVERLAPPEDWINDOW, 0, "MainW");
wMain.Show();
wMain.Update();
 
CRich Rich;
Rich.Create(&wMain, 20, 20, 740, 740, ES_MULTILINE | WS_BORDER | WS_VISIBLE);
 
Текущее время: 09:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru