Programming against ArcObjects


C++ is an object-oriented programming language that evolved in the mid-1980s from its predecessor, C. C++ is endowed with many features that give the language an unrivaled expressive power, such as object orientation with inheritance, operator overloading, virtual functions, templates, and a library of useful and often necessary functions called the Standard Template Library (STL). The C++ language has been standardized by the International Organization for Standardization (ISO) and several influential national standards organizations.
C++ API versus Visual C++ API: Do not confuse the C++ API with the Visual C++ COM API. If developing only on Windows the Visual C++ COM API has advantages over the pure C++ API. The C++ API is primarily aimed at UNIX and cross-platform development.
Developers may consider using the ArcGIS Engine C++ API, as opposed to one of the other APIs, for the following reasons:
  • Execution speed—C++ code typically executes faster than the equivalent Java, Visual Basic, C#, and VB.NET code.
  • Cross-platform compatibility—Visual Basic, Visual C++, VB.NET, and C# are currently used primarily on the Windows platform. C++ and Java are inherently more cross-platform.
  • Prior familiarity—If you already have a good deal of experience using the language, then C++ is a logical choice.
This section is intended to serve two main purposes:
  1. To familiarize you with general C++ coding style and debugging.
  2. To provide an introduction to the ArcGIS Engine C++ API, detailing specific usage requirements and recommendations for working with the ArcObjects programming platform.