对象的构造函数定义:
•       类的构造函数!=结构的构造函数
       编译器声明缺省构造函数
       你可以声明缺省构造函数
       如果你声明构造函数,那么编译器不会声明构造函数

对象的构造函数代码:
class Pair
{
}
//编译器声明一缺省构造函数
class Pair
{
    public Pair()
    { ... }
}
//正确,可以自己声明缺省构造函数
class Pair
{
    public Pair(int x, int y)
    { ... }
}
//正确,但编译器声明的缺省构造函数不存在,不存在缺省构造函数

对象的构造函数代码解析:
类的缺省构造函数的规则与结构的缺省构造函数的规则是不同的。你可以回忆一下,结构总有一编译器声明的公有的缺省构造函数。不管你有没有声明构造函数,编译器声明的公有的缺省构造函数总是存在的。所以你不能定义缺省构造函数,这样会出现两个缺省构造函数,这是不允许的。
但这只适合于结构,对于类是不适用的。如果你没有声明任何构造函数,那编译器会产生缺省构造函数。但如果你定义了一个构造函数,那么编译器就不会产生缺省构造函数。这也意味着如果你声明了一个或多个构造函数,那么你能拥有缺省构造函数的唯一途径是你声明的构造函数中必须有一个是缺省构造函数。这样的结果是如果你只定义了一非缺省构造函数,而你又要使用缺省构造函数的话,那你只有重载这个构造函数。如果你必须手动初始化类中的每一个字段(就像在结构中一样),那将是非常麻烦的。但幸运的是你可以不必这么做,你将在下面看到这一点。
 

推荐阅读:淘车网 www.taoche.com