C++ Language Counterparts to the Delphi Language
Go Up to Support for Delphi Data Types and Language Concepts
Delphi var and untyped parameters are not native to C++. Both have C++ language counterparts that are used in C++Builder.
Var parameters
Both C++ and Delphi have the concept of “pass by reference”. These are modifiable arguments. In Delphi, they are called var parameters. The syntax for functions that take a var parameter is:
procedure myFunc( var x : Integer);
In C++, you should pass these types of parameters by reference:
void myFunc( int & x);
Both C++ references and pointers can be used to modify the object. However, a reference is a closer match to a var parameter because, unlike a pointer, a reference cannot be rebound and a var parameter cannot be reassigned; although, either can change the value of what it references.
Untyped parameters
Delphi allows parameters of an unspecified type. These parameters are passed to functions with no type defined. The receiving function must cast the parameter to a known type before using it. C++Builder interprets untyped parameters as pointers-to-void ( void *). The receiving function must cast the void pointer to a pointer of the desired type. Following is an example:
int myfunc( void * MyName)
{
// Cast the pointer to the correct type; then dereference it .
int * pi = static_cast < int *>(MyName) ;
return 1 + *pi ;
}