为了使程序的输出的正确结果为: Now is 2004.7.10 10:10:10. 那么应在下列程序划线处填入的正确语句是( )。 那么应在下列程序划线处填入的正确语句是( )。 #include <iostream> using namespace std; class TIME; class DATE { public:DATE(int y=2004,int m=1,int d=1){ year=y; month=m; day=d;}friend void DateTime(DATE &d, TIME &t); private:int year, month, day; }; class TIME { public:TIME(iht h=0, int m=0,int s=0){ hour=h; minute=m; second=s;}friend void DateTime(DATE &d,TIME &t); private:int hour,minute, second; }; ______________________//函数 DateTime 的首部 {cout<<"Now is"<<d.year<<’.’<<d.month<<’.’<<d.day<<’ ’<<t.hour<<":"<<t.minute<<’:’<<t.second<<’.’<<end1; } int main ( ) {DATE d(2004,7,10);TIME t(10, 10, 10);DateTime(d,t);return 0; }
A.void DateTime(DATE &d,TIME &
B.void TIME::DateTime(DATE &d,TIME & const
C.friend void DateTime(DATE &d,TIME &
D.void DATE::DateTime(DATE &d,TIME &
参考答案:A
解析: 本题程序中,分别在类DATE和TIME中将普通函数DateTime声明为友元函数,但该友元函数的定义是在类体外进行的。友元函数是一个普通函数,它虽然可以访问类对象的私有成员,但它毕竟不是类中的成员函数,因此在类体外定义友元函数时,不需要像成员函数一样在函数名前加上“类名::”。函数首部的其他定义照抄类中友元函数的声明。所以函数DateTime的首部为void DateTime(DATE&d; TIME &t),即选项A。