c++ - 是否可以在 C++ 中使用匿名类?

标签 c++ class c++11 g++ c++14

我在 Quora 上的 C++ 代码中看到了匿名类。它已成功编译并运行。

代码在这里:

#include <iostream>

auto func()
{
    class // no name
    {
      public:
             int val;
    } a;

    a.val = 5;

    return a;
}

int main()
{
    std::cout << func().val << std::endl;
    return 0;
}

那么,它在 C++ 中有效吗?

另外,我很想知道,是否可以在 C++ 中使用匿名类?

最佳答案

不仅如此,您还可以使用 decltype 创建更多的类实例。

#include <iostream>

class 
{
   public:
      int val;
} a;


int main()
{
   decltype(a) b;
   a.val = 10;
   b.val = 20;

   std::cout << a.val << std::endl;
   std::cout << b.val << std::endl;
   return 0;
}

输出:

10
20

关于c++ - 是否可以在 C++ 中使用匿名类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44173737/

相关文章:

java - kotlin 类常量池中疯狂的 UTF-8 条目

javascript - 单击 jQuery 时删除或添加额外的类

c++ - 具有多线程成员函数的类

c++ - 为什么在 C++ 中调用原始类型的构造函数是合法的?

c++ - 在 C++、OpenGL 中使用 De Casteljau 算法绘制贝塞尔曲线

c++ - 有没有为特定模板值添加成员变量的方法?

c++ - Esp32紧急每隔一个HTTP发布请求

c++ - 在 C++ 三元运算符中使用字符串常量是对非左值数组的无效使用吗?

c++ - 有什么方法可以从 C++ 中的成员指针类型派生对象类型

c++ - Armadillo 初始值设定项列表不起作用