c++ - 使用多词类型定义

标签 c++ typedef

我正在尝试使用 typedef 来简化一些重复的输入,但我需要它们是静态成员。

这有效。

struct SituationBank
{
    typedef std::vector<std::string> WordType;  
    static WordType location;
};

这不是

struct SituationBank
    {
        typedef static std::vector<std::string> WordType;   
        WordType location;
    };

我在网上四处搜寻并进行了试验,但我似乎找不到任何方法来标记带有多个单词的 typedef 语句。此外,无论出于何种原因,这样的事情都可以正常工作。为什么?

typedef unsigned long long int ulli;

最佳答案

static 是存储类说明符。它适用于对象或函数,而不适用于类型。

例如,给定:

static int i;

iint 类型,而不是 static int 类型。对象 i 是静态的。

typedef 为现有类型创建别名,而不是为任意标记序列创建别名。 (后者是宏的用途,但它们会使您的代码难以阅读,因此在这种情况下我不推荐它。)

关于c++ - 使用多词类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46841106/

相关文章:

c++ - C++11如何判断当前函数是普通成员函数还是静态成员函数?

c++ - 如何获得 af boost::variant 的第 i 个基础类型(通过 const 整数)

C - 从队列中存储的项目中检索变量

c - typedef 语句的不同命名方式的目的是什么?

c - 为什么初始化的变量在注释行后不可见?

c++ - 如何在不复制数据的情况下在平面数组和多维数组之间进行转换?

C++ 不同的变量初始化

c++ - Bison:避免语义值的默认构造

c++ - 如何使用 4x4 键盘将多位整数输入 Arduino?

c++ - STL 函数/Boost 函数类型定义错误