我正在尝试在另一个结构中实现私有结构或类。案例I工作,而案例II在将所有成员变量声明为公共之后是可能的。为什么这样?我知道默认情况下,struct中的所有成员变量/函数都是公共的,反之亦然。现在我有点困惑为什么案例II不起作用?任何想法?
// case I
struct impl::playlist
{
struct
{
char name_[30];
}pod_t;
};
// case II
struct impl::playlist
{
class pod_t
{
private:
char name_[30]; // not accessible by impl member func if private
};
};
答案 0 :(得分:0)
案例I工作,而案例II在将所有成员变量声明为公共之后是可能的。为什么这样? (如果私有,则无法通过impl成员函数访问)
只有公开成员才能在课堂外访问。由于impl
的成员函数位于班级pod_t
之外,因此只有pod_t
的公开成员可用。
P.S。除了成员的访问说明符之外,您的案例I和II是不同的。如果我有一个名为pod_t
的对象,其类型是一个未命名的类。在案例II中,您有一个名为pod_t
的类,并且没有该类的对象。