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])
为了完整性:在中也没有关于继承的措辞
基本上:属性不是类或构造函数的成员,因此不能被继承。您的意思是使用您在函数返回类型中定义的类之一吗?