Здравствуйте IT, Вы писали:
IT>Здравствуйте Yurets, Вы писали:
Y>>В javascript есть такой оператор — with ( )
IT>Я бы тоже хотел иметь такую штуку в C++, но нету её и никак более менее путно сэмулировать её не получится
В Паскале есть, в Васике есть, вот даже в Жабаскрипе есть, а в Сях — ыыы
Здравствуйте IT, Вы писали:
IT>Здравствуйте Yurets, Вы писали:
Y>>В javascript есть такой оператор — with ( )
IT>Я бы тоже хотел иметь такую штуку в C++, но нету её и никак более менее путно сэмулировать её не получится
У Страуструпа в специальном издании есть пример (точно не помню, а книги под рукой нет):
Здравствуйте BlackBox, Вы писали:
BB>Здравствуйте IT, Вы писали:
IT>>Здравствуйте Yurets, Вы писали:
Y>>>В javascript есть такой оператор — with ( )
IT>>Я бы тоже хотел иметь такую штуку в C++, но нету её и никак более менее путно сэмулировать её не получится
BB>У Страуструпа в специальном издании есть пример (точно не помню, а книги под рукой нет):
BB>
BB>в какой главе точно не помню, может более знающие меня поправят...
Да там действительно есть такой пример
но по моему он не совсем сюда
для того что бы сделать такую цепочку надо просто
возвращать ссылку т.е.
Здравствуйте IT, Вы писали:
IT>Здравствуйте Yurets, Вы писали:
Y>>В javascript есть такой оператор — with ( )
IT>Я бы тоже хотел иметь такую штуку в C++, но нету её и никак более менее путно сэмулировать её не получится
Не знаю на счёт путно, но попробовать можно, например:
Здравствуйте Alexander Shargin, Вы писали:
AS>Не знаю на счёт путно, но попробовать можно, например:
[skip]
Саня, затолкай это в Исходники (со времени твоего последнего появления тут появился такой форум ) и посмотрим как много народу возмёт это на вооружение.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте Yurets, Вы писали:
Y>Привет !
Y>В javascript есть такой оператор — with ( ) Y>очень удобен когда нужно много обращаться к методам|переменным/членам одного и того же Y>класса.
Сколько ледёв, столько мнениев.
Недавно пришлось мне срочно (автор был в отпуске) править бооольшую проограмму на ВБ. Конечно может и удобно пользовать with, когда ваяеш что то новое, замечательное, никем ранше не деланное, но когда эти распроклятые операторы растыканы на каждом шагу, ты тупо смотришь на строчку и не можеш понять, а какого же обьекта метод сейчас вызывается, все кажется не таким класным и веселым. Приходится постоянно лазить по коду и держать в голове какой же обьект текущий. А чуть двинулся по коду (обычно при отладку весь код подряд не просматриваешь) и, блин, снова старая песня — а чего это мы тут вызываем? Плюс сроки, плюс обрадованный заказчик, которому это все нужно было позавчера... Сильные ощущения.......
Это реальная жисть господа...
Здравствуйте misha, Вы писали:
M>Здравствуйте Yurets, Вы писали:
Y>>Привет !
Y>>В javascript есть такой оператор — with ( ) Y>>очень удобен когда нужно много обращаться к методам|переменным/членам одного и того же Y>>класса.
M>Сколько ледёв, столько мнениев. M>Недавно пришлось мне срочно (автор был в отпуске) править бооольшую проограмму на ВБ. Конечно может и удобно пользовать with, когда ваяеш что то новое, замечательное, никем ранше не деланное, но когда эти распроклятые операторы растыканы на каждом шагу, ты тупо смотришь на строчку и не можеш понять, а какого же обьекта метод сейчас вызывается, все кажется не таким класным и веселым. Приходится постоянно лазить по коду и держать в голове какой же обьект текущий. А чуть двинулся по коду (обычно при отладку весь код подряд не просматриваешь) и, блин, снова старая песня — а чего это мы тут вызываем? Плюс сроки, плюс обрадованный заказчик, которому это все нужно было позавчера... Сильные ощущения....... M>Это реальная жисть господа...
Здравствуйте Alexander Shargin, Вы писали:
AS>Здравствуйте Alexander Shargin, Вы писали:
AS>>Не знаю на счёт путно, но попробовать можно, например:
AS>Мда. Нету в мире совершенства...
AS>
А не обломится?
Ты же в результате изолируешься от всех локальных переменных контекста.
Весь кайф-то with состоит в том, чтобы к членам объекта доступаться наравне с локальными:
sub demo(obj as SomeObject)
dim i as integer
for i = 1 to 100
with obj
.item1 = i
.item2 = i*i
debug.print"obj #"; i; " is "; .item3
end with
next i
end sub
Здравствуйте Yurets, Вы писали:
Y>В javascript есть такой оператор — with ( ) Y>очень удобен когда нужно много обращаться к методам|переменным/членам одного и того же Y>класса. >Как это в С реализовать ?
Ну разве что так:
A abc;
// with(abc) {
A& a = abc;
a.a = 1;
a.b = 2;
a.cdfdsf(true) ;
a.ddsfd();
// }
Что бы людей особенно страшными дефайнами не пугать и разными лишними классами.
А если без шуток, то такая конструкция хороша если к abc не очень удобный доступ, что либо вроде: tmp[i+GetValueX()].GetABC(r.Next()) и т.п.