Энциклопедия C++ Builder



ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ И C++ - часть 27


#include <vcl/dstring.h> #include <stdio.h> class Family // объявление класса

{

private:

AnsiString FNames[10]; // массив имен AnsiString GetName(int Index); // метод чтения void

SetName(int, AnsiString); // метод записи public:

_property AnsiString Names[int Index] =

{read=GetName, write=SetName} ;

Family(){} // .конструктор -Family(){) // деструктор

};

AnsiString Family::GetName(int i)

{

return FNames[i]; // GetName

возвращает значение }

void Family::SetName(int i, const AnsiString s) { FNames[i]=s; // SetName присваивает значение

}

void main()

{

Family My Family; // создание объекта MyFamily // Инициализация 4-х строк массива имен методом SetName() MyFamily.Names[0]="Иван" ;

MyFamily.Names[1]="Анна" ;

MyFamily.Names[2]="Марья";

MyFami ly. Names [ 3 ] = "

Андрей " ;

// Вывод 4-х строк массива имен методом GetName() for (int i=0; i<=3; i++)

puts(MyFamily.Names[i].c_str()) ;

}

Листинг 3.18.

Пример использования типа AnsiString в C++ программе с компонентным классом Family

(Семья).

Variant служит для спецификации значений, меняющих тип динамически. Переменная вариантного типа, в отличие от обычных статически типизированных переменных, способна менять свой тип во время исполнения программы. C++Builder объявляет этот тип Delphi как class __declspec(delphireturn) Variant: public TVarData. Заметим, чтс синтаксис вариантов, принятый в Delphi,

например:

V: Variant;

V := VarArrayCreate([0,Hi9hVal,0,HighVal],varlnteger) ;

отличается от способа записи вариантного массива в C++Builder:

Variant V(OPENARRAY(int,(0,HighVal,0,HighVal)),varlnteger);

Вариант может быть сконструирован из следующих типов данных: short, int, float, double.

Currency, TDateTime, bool, WordBool, Byte, AnsiString&, char *, wchar_t

* const. 01e2::lDispatch* const или 01e2::IUnknown* const.

Компилятор автоматически выполнит необходимые преобразования типа. При создании вариантных переменных они всегда инициализируются специальным значением Unassigned (не определено). Специальное значение Null




Содержание  Назад  Вперед