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;
}