定义与结构中的变量具有相同类型的变量

use*_*858 3 c++ variables

在c ++中,我说在头文件中定义了一个结构.

******test.h***********
typedef struct mystruct{
    uint8_t num;
} mystruct;
Run Code Online (Sandbox Code Playgroud)

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

******myclass.h***********
class myclass{
public:
    ??? num;
};
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*ing 5

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

class myotherclass
{
public:
  decltype (myclass::num) otherNum;
};
Run Code Online (Sandbox Code Playgroud)

不使用C++ 11,我这样做的典型方法就是退一步.创建一个typedef:

typedef uint8_t MyIntegral;
Run Code Online (Sandbox Code Playgroud)

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

class myclass
{
public:
  MyIntegral num;
};

class motherclass 
{
pulic:
  MyIntegral othernum;
};
Run Code Online (Sandbox Code Playgroud)

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