首先想想Java中的构造方法,在Java中构造方法特点名称和类名相同可以重载多个构造方法,当定义有参数的构造方法是系统不会提供无参数的构造方法,一般情况下构造方法都是public或protected的也可以定义成private就是在Java中所谓的单例模式时用到构造方法私有化。下面来看看C++中构造函数的定义。
C++中的定义:构造函数也是类的成员函数,但是它是一种特殊的成员函数,它除了具有一般成员函数的特性之外,还具有一些特殊的性质。
(1)构造函数的名字必须与类名相同。
(2)构造函数不指定返回类型,它隐含有返回值,有系统内部使用。
(3)构造函数可以有一个或多个参数,因此构造函数可以重载。
(4)在创建对象时,系统会自动调用构造函数。
看了C++中构造函数的定义发现和Java中基本一样学习起来就轻松了。下面是一个构造函数定义的例子。
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class Point
{
private:
int a,b;
public:
Point();
Point(int m,int n);
};
int main(int argc, char** argv) {
Point p1;
Point pr(10,20);
Point p3[2];
Point p4[2]={Point(2,3),Point(12,24)};
Point *p5 = new Point();
Point *p6 = new Point(32,24);
delete p5;
delete p6;
return 0;
}
Point::Point():a(1),b(1)
{
cout<<"Construct of Point"<<endl;
}
Point::Point(int m,int n):a(m),b(n)
{
cout<<"Construct of Point with 2 parameters "<<a<<" , "<<b<<endl;
}