c++ - 对 static constexpr char[][] 的 undefined reference

标签 c++

我尝试在类中初始化 char[][] 静态公共(public)字段,但在另一个函数中该字段未定义。我如何使用 consexpr 或存在另一种方法来初始化静态(字典)数组?

class A {
    public:
        constexpr static char dict[][3] = {
            "a",
            "bb"
        };

        void print() {
            printf(A::dict[1]);
        }
};

int main() {
    A a;
    a.print();
    return 0;
}

10 个对“A::dict”的 undefined reference

最佳答案

定义需要在类外部,而初始化器属于类内部。

constexpr char A::dict[][3];

关于c++ - 对 static constexpr char[][] 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530278/

相关文章:

c++ - 从typedef数据类型中删除const

c++ - C++11 中的默认返回类型是 long 吗?

c++ - 数组越界元素的值——它应该在每次执行时改变还是保持不变?

c++ - Linux、Eclipse、ARM 工具链和 Codan 错误

C++ - 函数在尝试忽略同一行时读取它两次

C++ C2440 '<function-style-cast>' : cannot convert from 'Node<T> *const ' to 'Iterator<const T>'

c++ - 如何用指针改变数组中的值?

C++:const 类成员的 STL 问题

c++ - 英特尔 C++ 编译器和 GCC 的基准

c++ - CMake和QT多重定义