C++ 从C+;中的外部访问嵌套类+;
您好,我想从其他类访问嵌套类C++ 从C+;中的外部访问嵌套类+;,c++,class,nested,inner-classes,C++,Class,Nested,Inner Classes,您好,我想从其他类访问嵌套类 class OutSideClass { public: class InSideClass { ... }; friend class InSideClass; }; class Other { InSideClass x; // This doesn't work }; InSideClass是一个公共类,所以我不明白为什么我可以从外部访问它 我还想访问 template <typename T&g
class OutSideClass
{
public:
class InSideClass
{
...
};
friend class InSideClass;
};
class Other
{
InSideClass x; // This doesn't work
};
InSideClass是一个公共类,所以我不明白为什么我可以从外部访问它
我还想访问
template <typename T>
class OutSideClass
{
public:
class InSideClass
{
class InSideClassIterator
{
};
};
public:
class Other
{
OutSideClass<T>::InSideClass::InSideClassIterator x;
};
};
模板
类外类
{
公众:
类内部类
{
类内累加器
{
};
};
公众:
其他类
{
外部类::内部类::内部类计算器x;
};
};
类内部类
在类的内部外部类
,因此您必须指定它
class Other
{
OutSideClass::InSideClass x; // This should work
};
在第二种情况下,声明位于OutSideClass
内部,因此您应该从声明中删除OutSideClass::
根据以下要求,似乎还需要typename
:
OutSideClass::InSideClass x代码>应该有效。您能解释一下当OutSideClass有模板时我应该怎么做吗。例如模板类OutSideClass
@user75453OutSideClass::InSideClass x代码><代码>某些东西
应该是你想要的int
。我已经编辑了我的问题,你能解释一下如何访问它吗。看来那样的话就没有了works@user75453为OutSideClass
添加模板参数,就像我之前的回答一样。@user75453在这种情况下,声明在OutSideClass
内,因此OutSideClass::
应该被删除。
class Other
{
typename InSideClass::InSideClassIterator x;
};