What is an Anonymous Object?

后端 未结 2 2133
忘掉有多难
忘掉有多难 2020-12-06 01:35

What is an Anonymous Object exactly?

Does C++ support/have Anonymous Objects?

2条回答
  •  感情败类
    2020-12-06 02:12

    This is a simplistic answer, but an anonymous object is basically an object which the compiler creates a class for.

    For example in C# (I know this is kinda irrelevant) you can just create an anonymous type by doing:

    new { filename = value }.

    The compiler effectively creates a class called AnonSomething1 [A random name you don't know] which has those fields. Therefore at that point you just created an instance of that AnonSomething1. C++ does not allow you to make anonymous class types inline (like Java and C# which have a base Object class which the anon types can derive).

    However you can make an anonymous struct by simply writing

    struct { 
        int field1; 
        std::string field2; 
    } myanonstruct; 
    

    which creates an anonymous struct and instantiates it with the alias myanonstruct. This C++ code does not define a type, it just creates an anonymous one with 1 instance.

    See C#: Anon Types

    See Java: Anon Types

    See C++ Structs: msdn

提交回复
热议问题