979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
1 | ||||||
Ошибки в коде с вложеными классами: Невозможно обратиться к private члену07.07.2015, 10:42. Показов 1145. Ответов 8
Метки нет Все метки)
(
Здорова!
Есть код:
1>d:\visual studio 2010\projects\test\test\main.cpp(31): error C2248: CObject_my::XOne::XOne: невозможно обратиться к private член, объявленному в классе "CObject_my::XOne" 1> d:\visual studio 2010\projects\test\test\main.cpp(35): см. объявление "CObject_my::XOne::XOne" 1> d:\visual studio 2010\projects\test\test\main.cpp(33): см. объявление "CObject_my::XOne" 1>d:\visual studio 2010\projects\test\test\main.cpp(31): error C2248: CObject_my::XTwo::XTwo: невозможно обратиться к private член, объявленному в классе "CObject_my::XTwo" 1> d:\visual studio 2010\projects\test\test\main.cpp(42): см. объявление "CObject_my::XTwo::XTwo" 1> d:\visual studio 2010\projects\test\test\main.cpp(40): см. объявление "CObject_my::XTwo" 1>d:\visual studio 2010\projects\test\test\main.cpp(53): error C2039: m_xXOne: не является членом "CObject_my" Типо мешает конструктор во вложеных классах. Там когда я закомментирую конструкторы во вложеных классах, то вылазит другая ошибка касающаяся макроса METHOD_PROLOGUE: 1>d:\visual studio 2010\projects\test\test\main.cpp(53): error C2039: m_pModuleState: не является членом "CObject_my" 1> d:\visual studio 2010\projects\test\test\main.cpp(26): см. объявление "CObject_my" 1>d:\visual studio 2010\projects\test\test\main.cpp(59): error C2039: m_pModuleState: не является членом "CObject_my" 1> d:\visual studio 2010\projects\test\test\main.cpp(26): см. объявление "CObject_my" 1>d:\visual studio 2010\projects\test\test\main.cpp(65): error C2039: m_pModuleState: не является членом "CObject_my" 1> d:\visual studio 2010\projects\test\test\main.cpp(26): см. объявление "CObject_my" Ниче не ясно почему нельзя конструкторы во вложеных классах создавать? и что это за член m_pModuleState??? В книге вроде код такой и должен работать.
0
|
|
07.07.2015, 10:42 | |
Ответы с готовыми решениями:
8
Невозможно обратиться к private -члену Error:невозможно обратится к private члену QWidget::operator =: невозможно обратиться к private член Невозможно обратиться к private член, объявленному в классе |
Неэпический
|
|||||||||||
07.07.2015, 11:23 | 2 | ||||||||||
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
07.07.2015, 12:08 [ТС] | 3 | |||||
А как получить доступ из вложенных классов к переменным членам внешнего класса?
METHOD_PROLOGUE(CObject_my,One) че то ошибку выдает. Добавлено через 17 минут Так как можно получить доступ из вложеного класса к переменным внешнего класса? ![]()
0
|
Неэпический
|
||||||
07.07.2015, 12:15 | 4 | |||||
Так же, как и не из вложенного:
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|||||||||||||||||||||
07.07.2015, 13:24 [ТС] | 5 | ||||||||||||||||||||
Так это нужно объект в функцию передавать как параметр, а нужно получить без передачи объекта, как было бы с использование METHOD_PROLOGUE(CObject_my,One) , как то так.
Там макрос:
Добавлено через 25 минут Переписал макрос без второй части от так:
Вообще что попало выводится? Добавлено через 22 минуты Croessmah, Можно еще вроде от так получить:
получаем указатель на класс и его используем
0
|
07.07.2015, 13:42 | 6 |
Ты где-то выдрал макрос из контекста и пытаешься его использовать без понимания происходящего. В общем он у тебя работает, потому что так совпало.
В С++ объект вложенного класса может быть создан без объекта внешнего класса (в Java, например, так сделать нельзя, если вложенный класс не статичный), поэтому этот макрос может привести к непонятно к чему, в лучшем случае к SIGSEGV (в худшем оно будет работать без падение с левыми данными). Лучше пока забудь про этот макрос и сформулируй еще раз задачу.
0
|
Заблокирован
![]() |
||||||
07.07.2015, 22:41 | 7 | |||||
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
09.07.2015, 14:39 [ТС] | 8 |
-=ЮрА=-, ну да, этот пример разобрал.
Добавлено через 3 минуты А где макрос пропал? ![]()
0
|
|
09.07.2015, 20:58
Ошибки в коде с вложеными классами: Невозможно обратиться к private члену
#9
|
0
|
09.07.2015, 20:58 | |
Невозможно обратиться к private член, объявленному в классе "Complex" Как обратиться к члену класса?
Как обратиться к каждому члену столбца? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |