C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Классы в си++, Делфи Класс AnsiString
__Cheat3r
Отправлено: 11.01.2006, 23:34


Станционный диспетчер

Группа: Участник
Сообщений: 110



Доброго времени суток.
Хочу создать класс, допустим MyString , да создать его так , чтобы его родителем был Делфи Класс AnsiString.
Хочетсья иметь свой тип данных , для удобства ...

Отредактировано __Cheat3r — 11/01/2006, 23:34
__Cheat3r
Отправлено: 12.01.2006, 02:25


Станционный диспетчер

Группа: Участник
Сообщений: 110



мда , тут как всегда никто ничего не знает ..
Задашь приличный вопрос , и одни просмтры в теме остаюцца..
Asher
Отправлено: 12.01.2006, 09:59


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
QUOTE
мда , тут как всегда никто ничего не знает ..

Знаешь, в это время многие спят.
AnsiString не предназначен для создания от него потомков.
GoodWin
Отправлено: 12.01.2006, 10:02


Дежурный стрелочник

Группа: Участник
Сообщений: 50



Тут многие знают и отвечали мне на серьезные вопросы Просто никому не интересно отвечать на вопросы, который можно найти в Хелпе. И зачем тебе иммено дельфийский класс родителем нужен?? В С++ также объявлен класс AnsiString
__Cheat3r
Отправлено: 12.01.2006, 10:12


Станционный диспетчер

Группа: Участник
Сообщений: 110



Извините , с GMT проблемы..

QUOTE
В С++ также объявлен класс AnsiString

ну это все таки аналог Делфи-класса ...

т.е. я понял никак не сделаешь?
GoodWin
Отправлено: 12.01.2006, 11:12


Дежурный стрелочник

Группа: Участник
Сообщений: 50



C++ не дает возможность создания потомков от AnsiString(у меня во всяком случае не получалось). Поэтому можно воспользоваться двумя вариантами:
1) создание собственного класса подобного AnsiString.
2) Использование его как данных и использования его функций опосредованно,т.е
class TMyString
{
private:
AnsiString String;
protected:

public:
__fastcall TMyString() ;
__fastcall ~TMyString();
};

функции которые ты не изменяешь можно объявить как события(указатели на фукции AnsiString). А другие изменять на свой вкус

Рекомендую разработать лучше свой класс, он будет намного производительней.

Guest
Отправлено: 12.01.2006, 12:51


Не зарегистрирован







Я может быть задал не правильно вопрос.. вот именно что я хочу. :
существует допустим функция(в одном из установленых мной компонентов):
CODE

void __fastcall AddHotPictureTag(const AnsiString Name, Graphics::TGraphic* gr, int ParaNo, Rvstyle::TRVVAlign VAlign, int Tag);

TRVVAlign VAlign — представляет какой то тип данных.
в зависимости от значения , картинка помещается в определенное место.

а сам я хочу создать функцию:

CODE

void AddNew(TRichView *rv,TMyClass Str)
{
rv->AddHotPicture("",Str);
//где Str название ресурса с картинкой.
}

АнсиСтринг юзать не хочу... Чтобы не подставлять левые параметры , а только разрешенные...
__Cheat3r
Отправлено: 12.01.2006, 13:12


Станционный диспетчер

Группа: Участник
Сообщений: 110



ЗЫ
моя функция в качестве 2ого параметра требует AnsiString , вот по этому мне и нужен потомок АнсиСтринга..
rv->AddPicture
Asher
Отправлено: 12.01.2006, 13:16


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
QUOTE
АнсиСтринг юзать не хочу... Чтобы не подставлять левые параметры , а только разрешенные...

а кто такие 'разрешенные'?
** __Cheat3r
Отправлено: 12.01.2006, 22:55


Не зарегистрирован







Разрешенные — т.е. с моего класса...
Георгий
Отправлено: 12.01.2006, 23:01


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



маразм крепчал, сейсмографы зашкаливало
зачем это надо? и что это даст?

но если очень хочется — проверь какой класс тебе дали используя RTTI

Отредактировано Георгий — 13/01/2006, 00:02
olegenty
Отправлено: 13.01.2006, 07:25


Ветеран

Группа: Модератор
Сообщений: 2412



не, если хочется самописности, можешь занаследоваться от std::string

Вернуться в Вопросы программирования в C++Builder