繁体   English   中英

为什么我无法创建我的数组(C ++)?

[英]Why I can't create my array (C++)?

我有以下代码:

#pragma once

class Matrix{
public:
    Matrix();
    ~Matrix();

protected:
    float mat[3] = {0.0, 0.0, 0.0};
};

但是我在float mat[3] = {0.0, 0.0, 0.0};得到一个错误float mat[3] = {0.0, 0.0, 0.0}; 它说错误C2059:语法错误:'{'和错误C2334:'{'之前的意外标记; 跳过明显的功能体。

我正确地创建了数组吗? 那有什么问题呢?

C ++ 03不支持成员字段的内联初始化。 您需要将此初始化移动到构造函数中,例如( 链接到演示 ):

class Matrix{
public:
    Matrix() : mat({0.0, 0.0, 0.0}) {};
    ~Matrix();

protected:
    float mat[3];
};

上面定义了内联构造函数; 如果单独定义构造函数,请将初始化列表(即冒号:和左大括号{之间的代码)与构造函数定义一起移动。

在批准C ++ 11标准之前,C ++不支持非静态数据成员初始值设定项 要使用此功能,您必须具有支持C ++ 11的编译器。 此外,它通常默认禁用,因此您可能需要手动启用它。 对于GCC,请指定std=c++11 对于Clang,请执行-std=c++11 -stdlib=libc++ 如果您使用其他内容,请查看文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM