相关疑难解决方法(0)

C++ POD类型不能有任何构造函数吗?

我有一个类和一个const变量.

struct A 
{
    int b;
};

A const a;
Run Code Online (Sandbox Code Playgroud)

该类A是POD,可以像这样初始化.

A const a = { 3 };
Run Code Online (Sandbox Code Playgroud)

恕我直言,有这样的构造函数看起来很好.

struct A 
{
    int b;

    A(int newB) : b(newB)
    {
    }
};
Run Code Online (Sandbox Code Playgroud)

但Clang假定A为非聚合类型.为什么我不能有这样的构造函数?或者我应该做些什么?


我修改了问题来表达我原来的意思.我已经写了structclass错误,并抱歉@Johannes约困惑:)

c++ constructor pod

17
推荐指数
2
解决办法
9070
查看次数

MSVC const enum类型

const enum Alpha{
    X=9,
    Y=5,
    Z=2
}p;
int main(){
    enum Alpha a,b;
    a= X;
    b= Z;

    p = X;
    p = Y;

    printf("%d",a+b-p); 
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

为什么在MSVC编译器中允许p = X和p = Y?此代码输出6.不应该在初始化时分配const值,而不是再次分配?

c++

5
推荐指数
1
解决办法
572
查看次数

标签 统计

c++ ×2

constructor ×1

pod ×1