拷贝构造函数就是用一个已知类去初始化新的类,构造新的类是和原来一样的,对新的类的操作不影响原来的类。
构造函数与其他方法的区别 :
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
C++的构造函数定义格式为:
class <类名>
{
public:
<类名>(参数表)
//...(还可以声明其它成员函数)
};
<类名>::<类名>(参数表)
{
//函数体
}
如以下定义是合法的:
class T
{
public:
T(int a=0){i=a;}//构造函数允许直接写在类定义内,也允许有参数表。
private:int i;
};
当程序中没有析构函数时,系统会自动生成以下构造函数:
<类名>::<类名>(){},即不执行任何操作。
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点