在 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/