我有一个简单的问题:空类的默认构造函数是公共的。但是如何?
class my
{
};
my ob;
编译器允许我创建一个对象,它是有道理的。而且,我知道你不能在构造函数是私有的地方创建对象。
对我来说,看起来,类内的所有东西都是private
,但显然不是默认构造函数(因为它允许我创建对象,因为默认构造函数应该是public
)。但令我困惑的是,课堂上没有public
部分。
那么,它是否创建了一个public
部分,仅在此情况下将默认构造函数置于其下?
或者还有其他事情正在发生,我的理由不正确?
此外,创建/访问对象时,如何访问公共,私有和受保护的内部组织/跟踪?
我得到了这个问题,因为我从来没有创建一个空类的对象,直到现在。
编译器提供的构造函数,析构函数和赋值运算符都是'public'。你必须积极地做些事情来阻止他们。 – juanchopanza