Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是C++;继承的类型属性?_C++_C++11 - Fatal编程技术网

C++ 是C++;继承的类型属性?

C++ 是C++;继承的类型属性?,c++,c++11,C++,C++11,我认为这不是真正的复制,因为我想知道的是类,而不是成员函数: struct [[nodiscard]] error {}; struct critical_error : error {}; critical_error foo(); int main() { foo(); // no warning. } 这里似乎没有继承[[nodiscard]]属性。所有类型属性都是一样的吗?它们不是,正如您自己断言的那样。该标准在从基类到派生类的继承方面是明确的: 10.6派生类[派生类] [

我认为这不是真正的复制,因为我想知道的是类,而不是成员函数:

struct [[nodiscard]] error {};
struct critical_error : error {};

critical_error foo();

int main() {
   foo(); // no warning.
}

这里似乎没有继承
[[nodiscard]]
属性。所有类型属性都是一样的吗?

它们不是,正如您自己断言的那样。该标准在从基类到派生类的继承方面是明确的:

10.6派生类[派生类] […]除非在派生类中重新声明,否则基类的成员也被视为派生类的成员。 除了构造函数之外的基类成员被认为是由派生类继承的。 基类的构造函数也可以继承,如[namespace.udecl]中所述。 继承的成员可以在表达式中以与派生类的其他成员相同的方式引用,除非它们的名称是隐藏的或不明确的([class.member.lookup])

为了完整性:在中也没有关于继承的措辞


基本上:属性不是类或构造函数的成员,因此不能被继承。

您的意思是使用您在函数返回类型中定义的类之一吗?