C++ 结构定义解释
C++ Struct definition explanation
我读过有关定义结构的文章:
struct someStruct {
int x;
int y;
};
struct otherStruct : public someStruct {};
所以我的问题是关于otherStruct的定义。
这个定义有什么作用?
我是 C++ 的新手,所以我只想知道在哪个关键字下我可以找到 otherStruct 的定义,以便在书中阅读它们。
这个答案只是 OOP
的 inheritance
概念的一个表面上的划痕,并没有涵盖它的所有方面。您应该阅读一本关于 C++
(或者一般来说是关于 OOP
)的书以获得完整的答案。
struct otherStruct : public someStruct
部分说 otherStruct
使用 public
继承扩展了 someStruct
。简单来说,public 继承不会改变从基础 class.
继承的成员(属性和方法)的可见性
新结构 ({}
) 的声明块为空。它不会向从 struct someStruct
.
继承的成员添加任何新成员
如果您比较 someStruct
和 otherStruct
的内存占用和行为,它们是相同的。但它们是不同的类型,不能相互替代。
但是,指向类型 otherStruct
的变量的指针可以用于需要指向结构 someStruct
的指针的地方(因为 otherStruct
,通过扩展 someStruct
有someStruct
) 预期的所有属性,但反过来是不可能的。
我读过有关定义结构的文章:
struct someStruct {
int x;
int y;
};
struct otherStruct : public someStruct {};
所以我的问题是关于otherStruct的定义。 这个定义有什么作用? 我是 C++ 的新手,所以我只想知道在哪个关键字下我可以找到 otherStruct 的定义,以便在书中阅读它们。
这个答案只是 OOP
的 inheritance
概念的一个表面上的划痕,并没有涵盖它的所有方面。您应该阅读一本关于 C++
(或者一般来说是关于 OOP
)的书以获得完整的答案。
struct otherStruct : public someStruct
部分说 otherStruct
使用 public
继承扩展了 someStruct
。简单来说,public 继承不会改变从基础 class.
新结构 ({}
) 的声明块为空。它不会向从 struct someStruct
.
如果您比较 someStruct
和 otherStruct
的内存占用和行为,它们是相同的。但它们是不同的类型,不能相互替代。
但是,指向类型 otherStruct
的变量的指针可以用于需要指向结构 someStruct
的指针的地方(因为 otherStruct
,通过扩展 someStruct
有someStruct
) 预期的所有属性,但反过来是不可能的。