![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Собсно вот код
До появления виртуальной ф-ции.. работало все как нужно... Я конечно могу сделать переопределение ф-ции, и тогда опять будет работать все как нужно, но мне бы хотелось не занимать этими ф-циями "лишнюю" память.... Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:18 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Не понятно, чего хочешь добиться. Класс А является абстрактным, потому класс С не может содержать экземпляров класса А.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
Neitron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Если сделать так.
То конструктор С() Покажет сообщение. Но A::f() существует, и занимает память... Мне нужен экземпляр класса B Но чтобы знал он о методах только класса A.
По-моему конструктор класса C вполне ясно говорит чего я хочу. Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:35 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
||||
|
|||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Там занимать нечему, функции ж не копируються в каждый экземпляр класса.
Малость не врубаюсь я, а как ты хочешь проделать эту операцию
без A::f? O_O --------------------
|
||||||
|
|||||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
chipset
Объясняю f() виртуальная и определянеся ри создании класса, через класс B... Вообщем я понел, что без указателей это сделать невозможно.А жаль. -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
конструктор-то говорит, но о чем он говорит ты, похоже, не знаеш...
+ класс B и так знает только о методах класса А ( ну и о своих ) -- о методах класса С он не знает ( если ты это имел в виду ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Neitron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Не совсем
После этого существует две ф-ции A::f() и B::f() При использовании виртуальных ф-ций cуществует только B::f() он обратится можно к ней и из класса A Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:42 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
это и так понятно... а чем тебя это не устраивает/что ты хочеш изменить? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Я хочу чтобы это работало... Это не компилируется.!
Видимо придется делать так...
В этом случае придется заботится об удалении объекта... А я это делать не хотел... Нужен код, который выше. Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:45 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
если не объявиш а абстрактным -- тоже две функции будут _существовать_...
что тебе нужно так и не понял... Добавлено @ 12:50 что такое virtual ~f(){}; ? + напиши не "хочу чтобы скомпилировалось" а задачу... ++ в чем проблема с "заботой об удалении"? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Я знаю все о чем говорит конструктор.
Я хочу чтобы "a" знал только о методах A, но был создал при помощи B Без указателей... Забей на virtual ~f(){}; Я показал тот код который мне нужен. В Виде указателей, хочу чтобы это было без указателей. Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:52 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
srd |
|
||||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Можно и не заботиться...
Или использовать ссылки -------------------- Не смей читать мою подпись!!! |
||||
|
|||||
Neitron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
![]() ![]() ![]() Только я это уже сам понел=)))) Пока я тут спорил, мне пришла в голову мысль о ссылка и уже минут 10 у меня компилируется проект и я ждал выдаст он ошибку или нет...
Всем спасибо. Как всегда никто не помог вовремя... Это сообщение отредактировал(а) Neitron - 2.12.2005, 12:55 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
||||
|
|||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Это у тебя фигня получилась. Неконстантные ссылки на временный объекты создавать нельзя.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Почему временный?
Объект существует пока существует класс или я не прав? Не проблема сделать её константной... -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |