Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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++_Templates_Instantiation_Protected - Fatal编程技术网

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
。正确吗?