C++Builder typedef . C++Builder (template class). , , . VCL , , Delphi.
Delphi C++Builder:
Delphi | C++Builder | ||
Shortint | 8- | char | typedef |
Smallint | 16- | short | typedef |
Longint | 32- | long | typedef |
Byte | 8- | unsigned char | typedef |
Word | 16- | unsigned short | typedef |
Integer | 32- | int | typedef |
Cardinal | 32- | unsigned long | typedef |
Boolean | true/false | bool | typedef |
ByteBool | true/false 8- | unsigned char | typedef |
WordBool | true/false 16- | unsigned short | typedef |
LongBool | true/false 32- | unsigned long | typedef |
AnsiChar | 8- | unsigned char | typedef |
WideChar | - Unicode | wchar t | typedef |
Char | 8- | char | typedef |
String | Delphi | AnsiString | typedef |
Single | 32- | float | typedef |
Double | 64- | double | typedef |
Extended | 80- | long double | typedef |
Real | 32- | float | typedef |
Comp | 64- | double | typedef |
Pointer | 32- | void * | typedef |
PChar | 32- | unsigned char * | typedef |
PansiChar | 32- ANSI | unsigned char * | typedef |
Set | 1..32 | Set<type, minval, maxval> | template class |
AnsiString | Delphi | AnsiString | class |
Variant | , 16 | Variant | class |
TdateTime | , 64- | TDateTime | class |
Currency | , 64- , 4 | Currency | class |
Set () VCL , . C++Builder Delphi Set<type, minval, maxval> :
type (, int. char enum):
minval () , ;
maxval ( 255) , .
Set , if (si == s 2) ,
|
|
Set<char, 'A', 'C'> si;
Set<char, 'X', 'Z'> s2;
. Set typedef. , typedef Set<char, 'A','Z'> UpperCaseSet; UpperCaseSet si; UpperCaseSet s2; :
s1 '' '' '';
s2 'X' 'Y' '?.';
AnsiString , :
\0 |
C++Builder Delphi . , AnsiString . str (), , 0 , AnsiString. 3.18 " FNames Names AnsiString MyFamily Family". , - . .
#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 , .
|
|
: , , , .
TDateTime . C++Builder Delphi , double, , ( 30 1899 ). TDateTime :
12/30/1899 | 12:00 | +0 , +0 | |
2.75 | 01/01/1900 | 18:00 | +2 , +6 |
-1.25 | 12/29/1899 | 06:00 | -1 , - |
01/01/1996 | 12:00 | +35065 , +0 |
, , . , , 1 .
3.6.2 ANSI C++
ANSI C++, , , , .
" " , , .
3.6.2.1
( ) .
template < > { };
.
. (, ), , , , :
template <class > ( . ) { return (x > )? : ; };
, <class T>, . :
int i;
Myclass a, b;
int j = max(i, 0); // int Myclass m = max(a, b); // Myclass
. max - , . C++ :
#define max(x,y) (( > )? : ) - , C++ . , (, ) - . , , , int struct.
. Vector - :
template <class T> class Vector
(, , ..), . , .
, :
class Vector<char *> (... };
Vector , .
|
|
3.6.2.2
. . , . , , (, ), . , , - . C++ (namespace).
, , , - . , namespace:
namespace <> { [<>] } :
:
ALPHA :: varl; // ALPHA BETA :: Fl; // BETA
:
using namespace:: ALPHA; // ALPHA
:
using:: new_name; //
3.6.2.3
, , , () . explicit:
explicit < > explicit , ( 3.19). .
class X
public:
explicit X(int);
explicit X(const char*, int = 0);
};
void f(X arg)
(
X a = X (1);
X b = ("",0);
a = (2);
}:(
3.19. .
, , .
3.6.2.4
, , -, volatile:
volatile <> < >;
C++ volatile -. , , , . . register. 3.20 , ticks .
volatile int ticks;
void timer() //
ticks++;
void wait (int interval)
ticks = 0;
while (ticks < interval); //
}
3.20. volatile.
, timer . wait , ticks , . C++ volatile ticks - , . "" .
|
|
, , mutable:
mutable < >;
mutable , . 3.21 , count F1.
class A {
public: mutable int count; int F1 (int p = 0) const // F1
count = p++ return count; //PI count
) I
void main() {
A a;
cout a.Fl(3) end.1; // main 4)
3.21. mutable.
3.6.2.5 RTTI
RTTI (Run-Time Identification) , , . , , . , - , - . dynamic_cast.
RTTI , , . typeid typeinfo, .
RTTI , C++Builder .
3.6.2.6
C++ . C++Builder (), . C++Builder .
, , , , , . (exception throwing) , , . (exception handler), . , . , Ctrl+C, .
, , try . try , :
1. .
2. , .
3. , terminate .
, , catch . try. , , . , catch. goto, , , try. 3.22 .
try
i
// ,
} 1
|
|
catch ( X) |
{ I
// , |
// try // try catch (...)
// try
3.22. .
, throw <> , . , , .
- , "" . , 5 .
3.7
- C++ . , , , , . , - , , .
.