c++ - 定义一个与结构中的变量具有相同类型的变量

标签 c++ variables

在 C++ 中 假设我在头文件中定义了一个结构。

******test.h***********
typedef struct mystruct{
    uint8_t num;
} mystruct;

在另一个头文件中,比如 myclass.h,我想定义一个与 mystruct 中的字段“num”具有相同类型 (uint8_t) 的变量。

******myclass.h***********
class myclass{
public:
    ??? num;
};

有没有办法定义这样的变量?谢谢。

最佳答案

使用C++11,你可以使用decltype:

class myotherclass
{
public:
  decltype (myclass::num) otherNum;
};

在不使用 C++11 的情况下,我执行此操作的典型方法是退后一步。创建一个 typedef:

typedef uint8_t MyIntegral;

然后在两个类中使用相同的类型:

class myclass
{
public:
  MyIntegral num;
};

class motherclass 
{
pulic:
  MyIntegral othernum;
};

这并不是您所要求的,但如果您可以更改 myclass 的定义,您可能会发现这种方法更易于维护。

关于c++ - 定义一个与结构中的变量具有相同类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557292/

相关文章:

c# - 使用 C++ 或 C# 进行 Windows 游戏编程

c++ - 2 维数组的大小

使用变量键的 Powershell Hashtable 值

c++ - 有没有使用 WinInet C++ 库的 http 上传的好例子

c++ - 如何计算比 O(n^2) 更好的最小平均子数组?

c++ - 当我们在 C++ 中将常量整数引用分配给整数指针时,行为是什么?

java - 如何在 if 语句中定义变量并在该语句之外使用它们?

php - 通过调用另一个函数设置函数中的静态变量

javascript - 在 PostCSS 中使用变量

linux - 编写一个 bash 脚本,将 debian 最小安装转换为 crunchbang 安装,但由于某种原因它不起作用