Russian Qt Forum
Ноябрь 25, 2024, 22:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Использование приватных классов. Проблемы. [НЕ РЕШЕНО]  (Прочитано 14748 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #15 : Август 25, 2009, 09:24 »

О_О ёпт!

никогда бы не подумал что макрос чо-то добавит сам !!! О_О О_О О_О О_О

Огромное Rcus + BRE человеческое Спасибо! Улыбающийся  И на это я убил 2 дня ... мдя.. и мне тож грустно

Получается , что "как ты лодку назовешь - так она и поплывет" (с)

И главное - что нигде нет упоминания (по крайней мере я не нашел) где говорилось бы о "правильности составления имени класса"

« Последнее редактирование: Август 25, 2009, 09:29 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
BRE
Гость
« Ответ #16 : Август 25, 2009, 09:35 »

И главное - что нигде нет упоминания (по крайней мере я не нашел) где говорилось бы о "правильности составления имени класса"
Как это нигде, а в /src/corelib/global/global.h  Подмигивающий
[Как мне показалось, Rcus своим ответом и хотел что бы ты туда заглянул.  Улыбающийся ]
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #17 : Август 25, 2009, 09:39 »

Кстати, а обязательно добавлять в protected секцию это:
Код:
protected:
...
MyBaseClass(MyBasePrivateClass &dd, QObject *parent);
...

?

И для чего оно нужно?
Записан

ArchLinux x86_64 / Win10 64 bit
Rcus
Гость
« Ответ #18 : Август 25, 2009, 09:46 »

Не обязательно. Нужно разработчику библиотеки чтобы использовать наследование интерфейсного класса совместно с раширением приватного класса.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #19 : Август 25, 2009, 09:51 »

Спс Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #20 : Август 27, 2009, 14:43 »

Да чтож такое! Не собирается тестовый примерчик с приватными классами, пишет при сборке:

Цитировать
build\obj\mybaseclass.o(.text+0x0):mybaseclass.cpp: multiple definition of `MyBaseClass::MyBaseClass
(QObject*)'
build\obj\mybaseclass.o(.text+0x0):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0xd0):mybaseclass.cpp: multiple definition of `MyBaseClass::MyBaseClas
s(QObject*)'
build\obj\mybaseclass.o(.text+0xd0):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x1a0):mybaseclass.cpp: multiple definition of `MyBaseClass::MyBaseCla
ss(MyBaseClassPrivate&, QObject*)'
build\obj\mybaseclass.o(.text+0x1a0):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x1d0):mybaseclass.cpp: multiple definition of `MyBaseClass::MyBaseCla
ss(MyBaseClassPrivate&, QObject*)'
build\obj\mybaseclass.o(.text+0x1d0):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x200):mybaseclass.cpp: multiple definition of `MyBaseClass::~MyBaseCl
ass()'
build\obj\mybaseclass.o(.text+0x200):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x2c0):mybaseclass.cpp: multiple definition of `MyBaseClass::~MyBaseCl
ass()'
build\obj\mybaseclass.o(.text+0x2c0):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x380):mybaseclass.cpp: multiple definition of `MyBaseClass::~MyBaseCl
ass()'
build\obj\mybaseclass.o(.text+0x380):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x450):mybaseclass.cpp: multiple definition of `MyBaseClass::setParam(
int)'
build\obj\mybaseclass.o(.text+0x450):mybaseclass.cpp: first defined here
build\obj\mybaseclass.o(.text+0x470):mybaseclass.cpp: multiple definition of `MyBaseClass::param() c
onst'
build\obj\mybaseclass.o(.text+0x470):mybaseclass.cpp: first defined here
build\obj\main.o(.text+0x8d):main.cpp: undefined reference to `MyClass::MyClass(QObject*)'
collect2: ld returned 1 exit status
mingw32-make: *** [release\testprivate.exe] Error 1

что ему теперь нужно?

ЗЫ: я злой ппц . пример прилагаю
Записан

ArchLinux x86_64 / Win10 64 bit
BRE
Гость
« Ответ #21 : Август 27, 2009, 14:56 »

Смотри src.pro:
- SOURCES                 =       mybaseclass.cpp mybaseclass.cpp main.cpp
+ SOURCES                 =       mybaseclass.cpp myclass.cpp main.cpp

myclass.h:
protected:
-    MyClass(MyClass &dd, QObject *parent);
+    MyClass(MyClassPrivate &dd, QObject *parent);

И не нервничай так.  Подмигивающий
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #22 : Август 27, 2009, 15:02 »

Упс, спасибо! Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 22.