![](http://imgsrc.baidu.com/forum/w%3D580/sign=18dd840c7ef082022d9291377bfafb8a/65d3b9014a90f603c61bfc683412b31bb151edcc.jpg)
代码是c++的,构造函数是私有的,然而31行是可以new的,而36行是不可以new的,并且32行也是不可以调用的,为什么都是私有的而31行可以执行,而32行和36行不可以呢?用的是vs2013,是c++的规定还是编译器的特性?以下是文字版的,希望大神可以解答一下
class a
{
public:
protected:
private:
a()
{
}
int b()
{
return 5;
}
};
a * ab = new a();
int d = ab->b();
int main()
{
a * cd = new a();
cin.get();
return 0;
}
![](http://hiphotos.baidu.com/%BB%F0%CE%E8%D1%FD%BA%FC/pic/item/048ca2faa5117766242df265.jpg?v=tbs)