c – 受保护的变量命名和标准
发布时间:2020-12-16 03:20:13 所属栏目:百科 来源:网络整理
导读:我遇到了这个引入可迭代队列的 post. OP在实现中使用了来自std :: queue的名为c的受保护变量. 这完全有效吗?这个变量在所有实现中都具有相同的名称吗?换句话说,标准是否清楚地表明该变量必须命名为c? 解决方法 作为参考,std :: queue的确切定义列在 here.
我遇到了这个引入可迭代队列的
post. OP在实现中使用了来自std :: queue的名为c的受保护变量.
这完全有效吗?这个变量在所有实现中都具有相同的名称吗?换句话说,标准是否清楚地表明该变量必须命名为c? 解决方法
作为参考,std :: queue的确切定义列在
here.所以在回答
是的,在这种情况下(和其他容器适配器类似); template <class T,class Container = deque<T>> class queue { protected: Container c; // ... }; 但是,一般而言,受保护和私有名称和成员的名称不是标准化的,因为这些类型并非都是为了派生而构建的,并且实现是一个实现细节(并且不构成公共API的一部分);例如 一些std容器和类确实定义了受保护成员的名称,特别是想到了iostreams库 – 基本上是要从中派生的类型. 作为后续行动 – 所有编译器/库都使用c吗?似乎至少主流的那些(libstdc,libc和MSVC). libstdc很有意思,它包含变量上的follow comment;
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |