Это упрощенный ответ, но анонимный объект - это в основном объект, для которого компилятор создает class
.
Например, в C # (я знаю, что это неважно) вы можете просто создать анонимный тип, выполнив:
new { filename = value }
.
Компилятор эффективно создает класс с именем AnonSomething1
[Случайное имя, которое вы не знаете], который имеет эти поля. Поэтому в этот момент вы только что создали экземпляр этого AnonSomething1
. C ++ не позволяет вам делать встроенные анонимные типы классов (например, Java и C #, которые имеют базовый класс Object, который могут извлекать типы anon).
Однако вы можете создать анонимную структуру, просто написав
struct {
int field1;
std::string field2;
} myanonstruct;
, который создает анонимную структуру и создает ее с псевдонимом myanonstruct
. Этот код C ++ не определяет тип, он просто создает анонимный с 1 экземпляром.
См. C #: Типы Anon
См. Java: Типы Anon
См. C ++ Struct: msdn