Форум
.NET
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, νsb, Вы писали: νsb>Здравствуйте, Sharov, Вы писали: S>>>>Ога, класс, особенно если something виртуальный метод. νsb>>>При чём тут это. Виртуальные методы нельзя вызывать, пока не вызвал конструктор базового объекта. S>>Если компилятор такое поймать сможет, то да, проблем нет, иначе -- хреново. νsb>Сможет, конечно. Ну в жаве по крайней мере может. νsb>Проблема возникает, когда нужно что-то не совсем тривиальное. К примеру в конструктор базового класса нужно передавать два параметра. И чтобы эти параметры вычислить, нужна еще пара строк, которые никакие виртуальные методы вызывать не будут, просто какие-то простые преобразования от параметров конструктора. Сейчас это в жаве никак не сделаешь, ну только вычислять это два раза в статическом методе, что смотрится очень некрасиво. Или заменить конструктор на статический метод, который будет конструировать объект, что тоже кажется некрасивым усложнением на ровном месте. νsb>Условно: νsb>Могло бы быть: νsb>[code=java] νsb>MyCtor(double d) { νsb> double a = atan(d); νsb> double s = sin(a); νsb> double c = cos(a); νsb> super(s, c); νsb>} νsb>[/code] νsb>А сейчас: νsb>[code=java] νsb>MyCtor(double d) { νsb> super(s(d), c(d)); νsb>} νsb>private static double s(d) { νsb> double a = atan(d); νsb> return sin(a); νsb>} νsb>private static double c(d) { νsb> double a = atan(d); νsb> return cos(a); νsb>} νsb>[/code] νsb>или νsb>[code=java] νsb>private MyCtor(double s, c) { νsb> super(s, c); νsb>} νsb>public static MyCtor of(double d) { νsb> double a = atan(d); νsb> double s = sin(a); νsb> double c = cos(a); νsb> return new MyCtor(s, c); νsb>} νsb>[/code]
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …