我正在尝试定义/声明一个静态结构实例,但是当我使用g++ -std=c++11 -g -Wall -c test.cc
编译时,我不断收到错误test.cc:3:1: error: ‘mine’ in ‘class MyClass’ does not name a type
这是我的代码的样子:
//test.h
#ifndef TEST_H
#define TEST_H
#include <stdint.h>
struct my_struct {
uint8_t foo;
uint8_t bar;
};
class MyClass {
public:
static const struct my_struct mine;
};
#endif
//test.cc
#include "test.h"
MyClass::mine = {1, 2};
在 C 中,你需要使用 struct StructName
来声明一个对象。
但在C++,在宣布之前struct
和class
都是不必要的。