Support for Object Pascal Data Types and Language Concepts
To support the RTL, Appmethod C++ implements, translates, or otherwise maps most Object Pascal data types, constructs, and language concepts to the C++ language. This is done in the following ways:
- Typedefs to native C++ types
- Classes, structs, and class templates
- C++ language counterparts
- Keywords that are ANSI-conforming language extensions
Not all aspects of the Object Pascal language map cleanly to C++. Occasionally, using these parts of the language can lead to unexpected behavior in your application. For example:
- Some types exist in both Object Pascal and in C++, but are defined differently. These can require caution when sharing code between these two languages.
- Some extensions were added to Object Pascal for the purpose of supporting Appmethod C++. Occasionally these can have subtle interoperability impact.
- Object Pascal types and language constructs that have no mapping to the C++ language should be avoided in Appmethod C++ when sharing code between these languages.
This section summarizes how Appmethod C++ implements the Object Pascal language, and suggests when to use caution.
- C++ and Object Pascal Object Models
- Classes that Support the Object Pascal Language
- C++ Language Counterparts to the Object Pascal Language
- Open Arrays
- Types Defined Differently
- Object Pascal Interfaces
- Resource Strings
- Default Parameters
- Runtime Type Information
- Unmapped Types
- C++ Keyword Extensions
- The __declspec Keyword Extension
- Object Pascal to C++ types mapping