|
|
|||||||||||||||||||||
о связи классов и наследовании даты23.08.2012, 02:04. Показов 2480. Ответов 29
Метки нет (Все метки)
base.hpp
Data.hpp
dir.hpp
main.cpp
Как можно еще передать дату с базавого класса на дерайвный ??? кроме как композиционной связи ??? Можно ли это сделать через наследование ??? Я хочу вызывать дату которую сетю в мейне через страк дата
0
|
|||||||||||||||||||||
| 23.08.2012, 02:04 | |
|
Ответы с готовыми решениями:
29
Ошибка в наследовании классов Указатели при наследовании классов
|
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
| 23.08.2012, 04:28 | |
|
Не очень понятна проблема. И поправьте main.cpp - вы не тот код туда скопировали.
1
|
|
|
|
||||||||||||||||||||||||||||||||||||||
| 24.08.2012, 14:24 [ТС] | ||||||||||||||||||||||||||||||||||||||
|
Ща поправлю и там на мейне объясну что я имел ввиду Добавлено через 17 часов 51 минуту //BaseClass.hpp
//Data.hpp
//DerivedClass.hpp
// main.cpp
Обновил название переменных Добавлено через 4 минуты сетим дату в базовый класс
Т.е. для того чтобы "передать " обязательно создавать композиционный объект или можно без него обойтись... например используя только связь наследования ??? если да то как это сделать ???
0
|
||||||||||||||||||||||||||||||||||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||||||
| 24.08.2012, 16:46 | ||||||
|
Нужно в наследнике создать конструктор вида:
1
|
||||||
|
|
||
| 24.08.2012, 20:51 [ТС] | ||
|
можно тогда без явного наследования конструктора обойтись ... хочется чтоб ты типа создаешь только объект с дефолтным конструктором наследника а там уже дата базового класса которая сетится из все ну в смысле в мейне мож как то через буст смарт пойтер можно ???
0
|
||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
| 24.08.2012, 22:23 | |
|
Хм, а можете написать, как вы хотите, чтобы это выглядело? Даже не обязательно рабочий код, просто интересно. И уже от этого будем плясать
1
|
|
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 24.08.2012, 22:41 | |
|
Эм... И каким образом dd будет знать, что надо взять именно из b, а не из другого экземпляра?
1
|
|
|
|
|||||||
| 24.08.2012, 22:44 [ТС] | |||||||
|
ведь dd сетит дефолтную дату из b почему он не может просетить дату из вне? как то типа внутри дефолтного конструктора dd прописать композиционный объект базавого класса который будет забирать дату... я не знаю вот эту дефолтную дату он видет и забирает я как то изъеб... ся уже не помню и забирал эту дату а из все не видет
ну совсем как то не круто есть иерархическая связь и надо еще при пихивать композиционную чтоб все работало неужели нельзя без композиции
0
|
|||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
|||||||||||||
| 24.08.2012, 22:53 | |||||||||||||
проще сделать DiravedClass наследником Base и объект создавать так
1
|
|||||||||||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 24.08.2012, 22:54 | |
|
Потому что определение класса dd статическое, оно обрабатывается во время компиляции. Соответственно, значения по умолчанию тоже, поэтому он их может использовать. Экземпляр класса создаётся динамически, во время исполнения. При компиляции класс dd понятия не имеет о том, что есть какой-то там b, из которого ему надо взять значения. И даже шаблонами нельзя это сделать, потому что значение-объект создаётся во время исполнения, а шаблоны отрабатывают при компиляции.
Передавайте в dd при создании ссылку на тот b и выгребайте оттуда все нужные данные. Это простое и понятное решение.
1
|
|
|
|
|||
| 24.08.2012, 22:57 [ТС] | |||
|
Добавлено через 1 минуту проще сразу дату в наследнике сетить а вейс вынести функции аля распечатать или что то типа того зачем и туда и туда сетить одно и тоже два раза лишняя операция , разве нет ???
0
|
|||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
||||||
| 24.08.2012, 22:59 | ||||||
|
Можно сделать так:
Второй вариант - глобальная переменная base. Но лучше всего сделать тот констуктор, который предлагался ранее.
1
|
||||||
|
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|||||||
| 24.08.2012, 23:03 | |||||||
1
|
|||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
|||||||
| 24.08.2012, 23:10 | |||||||
![]()
1
|
|||||||
| 24.08.2012, 23:46 | |
|
Не по теме: Leeto,
1
|
|
|
|
||||
| 25.08.2012, 00:05 [ТС] | ||||
|
типа сделать композиционный объект внутри наследника или базового пойтером и его передовать только если я так делаю у меня валиться Добавлено через 2 минуты блин да понимаю я все это мне интересно сетить дату в базовом а нумерические действия делать в наследнике Добавлено через 1 минуту Директивы это ты инклюд гейты (они же препроцессоры ) называешь ? это почему лучше ? Во директива препроцессора это по русски называется ![]() "Директивой препроцессора (или командной строкой препроцессора[1]) " http://ru.wikipedia.org/wiki/%... 0%A1%D0%B8 Не по теме:
0
|
||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
|
|||||||||||||||||
| 25.08.2012, 00:22 | |||||||||||||||||
|
этим
а этим
это два разных объекта. лежат в разном диапазоне памяти и друг про друга ничего не знают если у наследника нет дополнительных элементов т.е размер классов одинаков то можешь сделать так
0
|
|||||||||||||||||
| 25.08.2012, 00:22 | |
|
Помогаю со студенческими работами здесь
20
Ошибка при наследовании интерфейса в библиотеке классов Ошибка Type missmatch при наследовании классов Ошибка в наследовании: как вызвать функции дочерних классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|