Xpoint
   [напомнить пароль]

Автоматическое обновление

Метки: [без меток]
[удл]
2004-04-18 20:12:49 [обр] ceckbr[досье]

Сейчас расскажу проблему, стараясь отойти от конкретного языка программирования.

Допустим, у нас есть переменная str1, содержащая строку "def".

str1="def";

И переменная str, которая определяется так:

str="abc".str1;

Т.е., сейчас переменная str теперь содержит значение "abcdef".

Как сделать так, чтобы при присвоении str1 значения "ghi"

str1="ghi";

str автоматически содержала "abcghi"


P.S. Вариант "напишите еще раз str="abc".str1;" предлагать не стОит.

спустя 3 часа 45 минут [обр] Alexander O(17/469)[досье]
ceckbr[досье] без привязки к конкретному языку, думаю, не обойтись.
Либо отказаться от переменной str в польлзу функции, возвращающей нужное значение с учетом str1
спустя 7 часов [обр] ceckbr[досье]
Ну хорошо. Как это можно реализовать на Си, например. Без вызова функции :) У кого-то была идея реализовывать это через указатели. Но как ?
спустя 5 часов [обр] Закиров Руслан(0/343)[досье]
В ANSI C скорее всего такого не сделать там нет перегрузки операторов, а вот в С++ можно. Создать класс для которого перегружен <<, >>, =.
В perl вам поможет Tie::Scalar.
В Java тоже можно наверное.
спустя 5 часов [обр] ceckbr[досье]
А каким образом это можно реализовать на PHP ?
спустя 1 час 9 минут [обр] Кирилл [Kirk] Королев(3/673)[досье]
Была тема один-в-один в ПХП - поищите (может, в архиве уже).
спустя 1 день 8 часов [обр] Дмитрий Котеров(15/912)[досье]

Те, кто говорит, будто бы в ANSI C++ нельзя реализовать поддержку свойств, злостно клевещут! Вот, например: http://forum.dklab.ru/other/al......setterVStandartnomAnsiC++.html

Пример оттуда:

//   class PropClass { 
//     string st; 
//   protected: 
//     virtual string getText() { return st + "-with-tail"; } 
//     virtual void setText(string const &s) { st = s; } 
//   public: 
//     PROPERTY(string, text, PropClass, getText, setText); 
//   }; 
//   ... 
//   PropClass *obj = new PropClass(); 
//   obj->text = "test"; 
//   cout<<obj->text;
спустя 10 часов [обр] Владимир Палант(27/4445)[досье]
Дмитрий Котеров[досье]
Вы разницу между C и C++ знаете? :)
спустя 2 часа 53 минуты [обр] Дмитрий Котеров(15/912)[досье]
Владимир Палант[досье]
Ну, знаете... Может, еще и на ассемблере начнем писать? Или в кодах? (-;
спустя 1 год 4 месяца [обр] Владимир Хоменко(0/67)[досье]

Я, конечно, понимаю, что не в тему, что прошло полтора года, однако, почему не предложили такой банальный вариант:

char str[1024] = "abc";
char* str1 = str + strlen(str);

strcpy(str1, "def");
printf("%s\n", str);

strcpy(str1, "ghi");
printf("%s\n", str);

?

Powered by POEM™ Engine Copyright © 2002-2005