4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
||||||
1 | ||||||
Наследование конструктора10.08.2017, 16:16. Показов 4382. Ответов 17
Метки нет (Все метки)
Есть структура, нужно создать объект этого класса, но конструктор доступен только наследникам этого класса:
Каким образом можно создать объект этого класса? Необходим наследник?
0
|
10.08.2017, 16:16 | |
Ответы с готовыми решениями:
17
Наследование с использованием конструктора. Наследование конструктора из базового класса Нет подходящего конструктора по умолчанию. Наследование Структура программы или наследование, без использования конструктора базового класса |
69 / 68 / 52
Регистрация: 28.10.2015
Сообщений: 388
|
||||||
10.08.2017, 16:20 | 2 | |||||
0
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
|
10.08.2017, 16:25 [ТС] | 3 |
этот класс менять нельзя, в этом и проблема
0
|
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
|
10.08.2017, 16:30 | 4 |
T_e_n_Jl_bl_u, для наследования конструктор должен быть в public:
0
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,406
|
||||||
10.08.2017, 16:31 | 5 | |||||
0
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
|
10.08.2017, 16:31 [ТС] | 6 |
и как тогда можно создать объект класса?
0
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,406
|
|
10.08.2017, 16:35 | 7 |
T_e_n_Jl_bl_u, конструктор для того и делают защищённым, чтобы нельзя было создать объекты этого класса, но можно было от него наследовать.
0
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
||||||
10.08.2017, 16:36 [ТС] | 8 | |||||
[Error] 'Foo::Foo(const char*)' is protected
0
|
Неэпический
|
||||||
10.08.2017, 16:39 | 9 | |||||
GeFacle, откуда такие мысли?
Добавлено через 15 секунд Например, конструктором копирования:
1
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,406
|
|
10.08.2017, 16:39 | 10 |
0
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
|
10.08.2017, 16:41 [ТС] | 11 |
Текст задания, может вообще не по тому пути иду
Кликните здесь для просмотра всего текста
Вам дан класс Foo: struct Foo { void say() const { std::cout << "Foo says: " << msg << "\n"; } protected: Foo(const char *msg) : msg(msg) { } private: const char *msg; }; Как видно, создатель класса не хотел чтобы его использовали и "спрятал" конструктор класса. Но вам очень нужен объект этого класса, чтобы передать его в функцию foo_says: void foo_says(const Foo& foo) { foo.say(); } В этом задании вам нужно реализовать функцию get_foo (сигнатура которой намерено не приводится в задании полностью, вам нужно подумать и вывести ее самостоятельно) так, чтобы следующий код компилировался и работал: foo_says(get_foo(msg)); Где msg — произвольная C-style строка. Требования к реализации: при выполнении задания вам разрешено вводить любые вспомогательные функции и классы. Запрещено изменять определение класса Foo или функции foo_says. Вводить или выводить что-либо не нужно. Реализовывать функцию main не нужно. Добавлено через 1 минуту MinGW в Devcpp
0
|
Неэпический
|
||||||
10.08.2017, 16:43 | 12 | |||||
1
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
||||||
10.08.2017, 16:48 | 13 | |||||
Сообщение было отмечено T_e_n_Jl_bl_u как решение
Решение
Добавлено через 15 секунд
T_e_n_Jl_bl_u, можно как-нибудь так:
1
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
|
10.08.2017, 16:58 [ТС] | 14 |
Всё, разобрался, спасибо всем
0
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,406
|
|
10.08.2017, 17:03 | 15 |
Не могу ничерта понять, почему это не работает тогда?
В чём тут отличие от других решений, кроме того, что наследование открытое?
0
|
Неэпический
|
|
10.08.2017, 17:06 | 16 |
2
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,406
|
|
10.08.2017, 17:11 | 17 |
Ну слава богу, а то я уже начал на свои куриные мозги грешить.
Да, точно, там же struct.
0
|
4 / 4 / 1
Регистрация: 27.07.2017
Сообщений: 54
|
||||||
10.08.2017, 17:20 [ТС] | 18 | |||||
0
|
10.08.2017, 17:20 | |
10.08.2017, 17:20 | |
Помогаю со студенческими работами здесь
18
В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать? Наследование конструктора от переменного шаблона Заменить наследование классов на наследование интерфейсов Скобки у конструктора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
|
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта
В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
|
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
|
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
|
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|