以下程序哪一句声明了拷贝构造函数?

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:12:21
源程序如下:

#include <iostream>
using namespace std;
class Clock
{
public:
Clock();
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
~Clock(){}
private:
int Hour,Minute,Second;
};

Clock::Clock()
{
Hour=0;
Minute=0;
Second=0;
}

void Clock::SetTime(int NewH,int NewM,int NewS)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}

void Clock::ShowTime()
{
cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}

Clock globClock; //声明对象globClock,具有静态生存期,文件作用域

int main()
{
cout<<"First time output:"<<endl;
globClock.ShowTime();
globClock.SetTime(8,30,30);
Clock myClock(globClock); // 声明具有块作用域的对象myClock,调用拷贝构造函数,以globClock为初始值
cout<<"Second time output:"<<endl;
myCloc

程序没有声明拷贝构造,Clock myClock(globClock);这句调用了程序编译后系统的默认拷贝构造函数。

你的Clock 类根本就没有声明拷贝构造函数,当一个类没有自定义的拷贝构造函数的时候系统会自动提供一个默认的拷贝构造函数,来完成复制工作,