The C++ standard does not define the term "anonymous object", but it stands to reason that one might sanely use the term to describe any object that has no name:
- Temporaries:
f(T());
- Unnamed function parameters:
void func(int, int, int);
What I wouldn't count is dynamically-allocated objects:
Technically speaking, an "object" is any region of storage [1.8/1 in 2003], which would include the X bytes making up the integer dynamically-allocated by new int;
.
In int* ptr = new int;
the pointer (itself an object too, don't forget!) has the name ptr
and the integer itself has no name other than *ptr
. Still, I'd hesitate to call this an anonymous object.
Again, though, there's no standard terminology.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…