Search results
Results From The WOW.Com Content Network
In the C++ programming language, a reference is a simple reference datatype that is less powerful but safer than the pointer type inherited from C.The name C++ reference may cause confusion, as in computer science a reference is a general concept datatype, with pointers and C++ references being specific reference datatype implementations.
C++ also supports another form of reference, quite different from a pointer, called simply a reference or reference type. Pointer arithmetic , that is, the ability to modify a pointer's target address with arithmetic operations (as well as magnitude comparisons), is restricted by the language standard to remain within the bounds of a single ...
A reference is an abstract data type and may be implemented in many ways. Typically, a reference refers to data stored in memory on a given system, and its internal value is the memory address of the data, i.e. a reference is implemented as a pointer. For this reason a reference is often said to "point to" the data.
C++ includes support for object-oriented programming, so classes can have methods (usually referred to as member functions). Non-static member functions (instance methods) have an implicit parameter (the this pointer) which is the pointer to the object it is operating on, so the type of the object must be included as part of the type of the ...
This feature was eventually removed, and now this in C++ is an r-value. [9] Early versions of C++ did not include references and it has been suggested that had they been so in C++ from the beginning, this would have been a reference, not a pointer. [10] C++ lets objects destroy themselves with the source code statement: delete this.
Many languages have explicit pointers or references. Reference types differ from these in that the entities they refer to are always accessed via references; for example, whereas in C++ it's possible to have either a std:: string and a std:: string *, where the former is a mutable string and the latter is an explicit pointer to a mutable string (unless it's a null pointer), in Java it is only ...
The type Handle is an opaque pointer to the real implementation, that is not defined in the specification. Note that the type is not only private (to forbid the clients from accessing the type directly, and only through the operations), but also limited (to avoid the copy of the data structure, and thus preventing dangling references).
A tracking reference in C++/CLI is a handle of a passed-by-reference variable. It is similar in concept to using *& (reference to a pointer) in standard C++, and (in function declarations) corresponds to the ref keyword applied to types in C#, or ByRef in Visual Basic .NET. C++/CLI uses a ^% syntax to indicate a tracking reference to a handle.