| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Работа с класами |
| Автор: NOCaut 22.7.2011, 14:24 |
| у меня есть клас CBand и вункция вне класа runThread. Как визвать в етой функцию функцию класа? void runThread(LPVOID args) { CBandToolBarCtrl::Navigate(L""); // - >регаеться что недопустимый вызов нестатической функции-члена } |
| Автор: newbieone 22.7.2011, 14:33 | ||
может, так?
в общем, нестатические функции-члены должны вызываться по отношению к какому-то объекту. на то они и нестатические. |
| Автор: JЕT 22.7.2011, 14:39 | ||||
| Либо сделайте эту функци статической, либо обьявите объек тласса CBand. Пример 1:
Пример 2:
|
| Автор: NOCaut 22.7.2011, 14:39 |
| после создание object нужно чистить память за соболй? Добавлено через 3 минуты и 13 секунд У меня public секция что за ерор? error: спецификатор 'static' не должен использоваться для функций-членов с областью видимости в пределах файла |
| Автор: bsa 22.7.2011, 14:54 |
| NOCaut, код покажи |
| Автор: NOCaut 22.7.2011, 15:00 |
| // h file class CBandToolBarCtrl : public CWindowImpl<CBandToolBarCtrl, CToolBarCtrl> { public: static void Navigate(CString url); ..... // cpp file static void CBandToolBarCtrl::Navigate(CString url) { } |
| Автор: JЕT 22.7.2011, 15:03 | ||
| Уберите клчевое слово static из реализации функции. Добавлено через 36 секунд То есть сделайте просто
|
| Автор: NOCaut 22.7.2011, 15:03 |
| нащол что не так Но тепер с етой функции я не вижу переменние класа |
| Автор: JЕT 22.7.2011, 15:07 | ||
Скорее всего переменные в классе обьявлены со специикатором доступа private. Создайте get и set функции для доступа к этим переменным. |
| Автор: NOCaut 22.7.2011, 15:10 |
| Рахобрался |
| Автор: JЕT 22.7.2011, 18:26 |
| Да, вы правы. Перепутал немного. |