如何在C和C++中定义结构之间的某种继承?

And*_*ira 1 c c++ inheritance struct

谈论结构,是否可以将一个struct字段复制到另一个struct而不显式调用类型字段名称?

让我举个例子:

struct StructA
{
   char Name[20];
   int Age;
};

struct StructB
{
   StructA FieldStructA;

   int SomeOtherDeclarations;
   // ...
};
Run Code Online (Sandbox Code Playgroud)

所以,我可以访问这些StructA字段StructB:

StructB strB;
strB.FieldStructA.Name[0] = 0;
Run Code Online (Sandbox Code Playgroud)

我想要做的是访问StructA字段StructB而不访问StructB上的数据字段.类似于类之间的继承.像这样:

StructB strB;
strB.Name[0] = 0;
Run Code Online (Sandbox Code Playgroud)

我想继承StructA字段StructB.我知道我可以用类来做,但由于某些原因我必须使用struct(互操作,堆栈的具体使用等).

谢谢你的时间!

Gre*_*ill 5

您可以使用继承在C++中执行此操作:

struct StructB: public StructA
{
   int SomeOtherDeclarations;
   // ...
};
Run Code Online (Sandbox Code Playgroud)

鉴于此,您可以这样做

StructB strB;
strB.Name[0] = 0;
Run Code Online (Sandbox Code Playgroud)

  • 我宁愿一直明白它.否则它最终会让人感到困惑. (2认同)