Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 28.09.2011, 15:07
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Такой код:myclass.h:КодC++ (Qt)#ifndef MYCLASS_H#define MYCLASS_H#include class MyClass2;class MyClass{public: MyClass(); ~MyClass(); QScopedPointer _ptr;};#endif // MYCLASS_Hmyclass.cpp:КодC++ (Qt)#include "myclass.h"#include "myclass2.h"MyClass::MyClass(){ this->_ptr.reset(new MyClass2);}MyClass::~MyClass() { }myclass2.h:КодC++ (Qt)#ifndef MYCLASS2_H#define MYCLASS2_H#include "myclass.h"class MyClass2{public: MyClass2() { }; ~MyClass2() { };};#endif // MYCLASS2_Hmain.cpp:КодC++ (Qt)#include "myclass.h"int main(int argc, char *argv[]){ MyClass obj;}Вопрос в том, зачем для MyClass'а, в котором мембером является QScopedPointer, при операции forward declaration необходимо обязательно объявлять деструктор, может кто-то выяснил это? Без деструктора бооольшой ерор. Думал может по умолчанию деструктор идёт как virtual (в доке по QScopedPointer такой какбэ запрещается), но если с ним, то всё ок. Не люблю такой подход - объявлять их пустыми, класс MyClass ведь никем не наследуется чтоб объявлять и виртуалить энтот деструктор...
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
как можно снять левый шатун на Forward barselona 1 ??? Guest Новый архив 5 0 18.03.2012 06:23
multiple types in one declaration - как лечить? Guest Продолжение старого архива 0 30.09.2011 17:35
спортивная одежда FORWARD. Guest Архив вопросов и ответов 0 30.09.2011 10:25
Течь масла у пилы Forward FGS-45 Guest Продолжение архива вопросов 0 06.09.2011 11:52
Фрезеры FORWARD Guest Продолжение нового архива 0 04.09.2011 12:08



© www.otvetnemail.ru - Форум вопросов и ответов.