C++ 如何告诉派生类要使用哪个受保护的基类成员
考虑下面的例子:C++ 如何告诉派生类要使用哪个受保护的基类成员,c++,templates,instantiation,protected,C++,Templates,Instantiation,Protected,考虑下面的例子: 类基{ 受保护的: 结构子结构{double value;}; }; 派生类:公共基{ 公众: 派生的(){ data.value=3.14; } Base::子结构数据; }; int main() { 派生实例; std::我是否认为您强加了相互冲突的需求。一方面,您希望基的嵌套结构受到保护。另一方面,您希望派生的用户了解并使用它们。您可能希望重新考虑您的需求和约束。我正在制作的事实>数据public是不相关的。在我的设计中,Base为派生类提供了多种可能的实现。我可以为不
类基{
受保护的:
结构子结构{double value;};
};
派生类:公共基{
公众:
派生的(){
data.value=3.14;
}
Base::子结构数据;
};
int main()
{
派生实例;
std::我是否认为您强加了相互冲突的需求。一方面,您希望基的嵌套结构受到保护。另一方面,您希望派生的用户了解并使用它们。您可能希望重新考虑您的需求和约束。我正在制作的事实>数据
public是不相关的。在我的设计中,Base
为派生类提供了多种可能的实现。我可以为不同的实现定义单独的类Derived1
和Derived2
,但这会复制代码。我正在尝试制作一个模板派生
。data
是public
成员,但这不是我要说的。您希望客户端代码能够使用Derived
。这就是我要说的。确切地说,我想使用struct-Derived:Base{private:Base::SubStruct s;},其中Base::SubStruct
由派生的可见,而\uuuuu something\uuuuu
是客户的选择。这重复了使用std::conditional
的解决方案。在这种情况下,您希望客户知道\uu something\uuuuu
映射到Base::SubStruct\uu 1
和\uu另一个东西aps到Base::SubStruct_2
。正确吗?