1.为什么c++会使用构造函数呢?
构造函数是为了进行变量的初始化。
2.为了只是变量的初始话,为什你们我们不能直接使用像c语言中的方法:(例如 int a = 0)
看下面这个例子是通过调用函数setdate(int y,int m,int d);进行变量初始话的。
#include <iostream> using namespace std; class date { public: void getdate(); int getyear(); int getmonth(); int getday(); void setdate(int y,int m,int d); private: int year,month,day; }; int date::getyear(){ return year; } int date::getmonth(){ return month; } int date::getday(){ return day; } void date::getdate() { cout<<"today is:"<<year<<"-"<<month<<"-"<<day<<endl; } void date::setdate(int y,int m,int d) { year=y; month=m; day=d; } int main() { date d; d.setdate(2011,2,1); cout<<"year="<<d.getyear()<<endl; cout<<"month="<<d.getmonth()<<endl; cout<<"day="<<d.getday()<<endl; d.getdate(); return 0; } 3.这个地方是通过使用构造函数进行初始化,它的方式就是像我们平时进行变量定义 int a. #include <iostream> using namespace std; class date { public : date( int y=0, int m=0, int d=0) { year=y; month=m; day=d; } date(date &d) { year=d.year; month=d.month; day=d.day; } void getdate() { cout<< "today is:" <<year<< "-" <<month<< "-" <<day<<endl; } int getyear() { return year; } int getmonth() { return month; } int getday() { return day; } private : int year,month,day; }; int main() { date d1(2011,2,1),d2,d3(d1); d1.getdate(); d2.getdate(); d3.getdate(); return 0; }