C++新手上路第一天

来源:互联网 发布:mac刷新dns缓存 编辑:程序博客网 时间:2024/05/01 18:19

第一天写了一些入门的代码,简单的用了构造函数和复制构造函数

Clock

#include "stdafx.h"

#include<iostream>//cout cin 都是这个文件里的还要加入命名空间

using namespace std;

 

class Clock

{

public://公有成员

Clock(int newH,int newM,int newS);//构造函数的声明

Clock();//如果谢了构造函数就不能使用系统自带的默认无参构造函数,如果想要就必须写出来,函数可以重载好多个

void Clock::ShowClock();//声明显示Clock的成员函数

 

private://私有成员

int hour, minute, second;

};

//构造函数的实现

Clock::Clock(int newH,int newM,int newS)

{

hour = newH;

minute = newM;

second = newS;

}

//无参构造函数的实现

Clock::Clock()

{//初始化私有成员

hour = 0;

minute = 0;

second = 0;

}

 

//成员函数的实现

 void Clock::ShowClock()

{

cout << hour<< ":" << minute<< ":" << second<< endl;//C++输出格式

}

//主函数,程序唯一入口,调用类中的成员

int main()

{

Clock clock1;//使用无参构造函数创建对象,不用加括号,加括号系统会以为是声明函数,使用对象时会报错

Clock clock2(1,1,1);//使用有参构造函数创建对象

cout << "The Clock1 time is" << endl;

clock1.ShowClock();//对象使用成员函数,但是clock1没有参数所以不能使用有参的函数ShowClock

cout << "The clock2 time is" << endl;

clock2.ShowClock();

    return 0;//因为主函数是int型的所以必须有int型的返回值

}

复制构造函数的使用方法

#include "stdafx.h"

#include<iostream>

using namespace std;

class Point

{

public:

Point(int xx = 0,int yy = 0);

Point(Point &p);//复制构造函数的声明

int GetX();

int GetY();

int w;

private:

int x, y;

};

//实现构造函数

Point::Point(int xx ,int yy)

{

x = xx;

y = yy;

}

//实现拷贝构造函数

Point::Point(Point &p)

{

x = p.x;

y = p.y;

cout << "Calling the copy constructor" << endl;

}

//实现其他成员函数

int Point::GetX()

{

return x;

}

int Point::GetY()

{

return y;

}

//形参为Point类对象的函数

void Fun1(Point p)

{

cout << "X:" << p.GetX()+1<< endl;

cout << "Y: " << p.GetY()+1<< endl;

}

//返回值为Point类对象的函数

Point Fun2()

{

Point a(1, 2);

return a;

}

 

int main()

{

Point a(4, 5);//创建第一个对象

Point b = a;//情况一:用a初始化b。调用复制构造函数

cout << "X:" << b.GetX()<< endl;

cout << "Y: " << b.GetY()<< endl;

Fun1(b);//情况二:对象b作为Fun1的实参。调用复制构造函数

b = Fun2();//情况三:函数的返回值是类的对象,函数返回时,调用复制构造函数

cout << "X:" << b.GetX()<< endl;

cout << "Y: " << b.GetY()<< endl;

    return 0;

}

0 0