gpt4 book ai didi

c++ - C++ 中的继承机制是一种奇怪的初始化列表形式?

转载 作者:行者123 更新时间:2023-11-30 02:54:41 29 4
gpt4 key购买 nike

在第无数次输入代码片段时,我灵光一现,但我不确定这是不是真的,因此我的问题就在这里

代码

template <class T> class ListNode:public Node {

public:
T_val;
ListNode (T val);

}

问题

class ListNode : public Node 是一种将对象的公共(public)部分初始化为父对象的公共(public)部分的初始化列表吗?

最佳答案

不,不是。对象的初始化发生在构造函数中,而不是在类定义期间。这只是简单的继承,一个仅适用于类而不适用于对象的概念。类确实只存在于编译时,不存在于运行时,所以不可能有初始化。定义继承的语法使用冒号 :以及在构造函数中定义初始化列表的语法,并不意味着存在关联。这只是在两种情况下使用相同的字符,这两种情况足以避免混淆,至少在正常情况下是这样;-)

这种多次使用在 C++ 中经常发生。例如。考虑成对的括号 ()这在函数声明/定义 和函数调用 中均有使用。或一对大括号 {}它用于定义范围 block (命名空间、类、函数、函数级别以下的范围)和初始化对象(C++11 中的统一初始化,C++98/03 中的聚合初始化)。其他例子是 & (“地址”和“二进制和”运算符与引用声明),delete ( delete 运算符和 operator delete 对比删除的函数)和 <等(模板与比较运算符)

关于c++ - C++ 中的继承机制是一种奇怪的初始化列表形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889369/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com