已知date类,将date类声明为time类的友元类,通过date类的display(time &t)函数引用time类对象的私有数据,输出时:分:秒
时间: 2023-11-28 21:48:31 浏览: 53
下面是一个示例代码:
```c++
class time; // 先声明time类,以便在date类中使用
class date {
public:
// ...
void display(time &t);
private:
// ...
friend class time; // 声明time类为友元类
};
class time {
public:
// ...
private:
int hour;
int minute;
int second;
friend void date::display(time &t); // 声明display函数为友元函数
};
void date::display(time &t) {
cout << t.hour << ":" << t.minute << ":" << t.second << endl;
}
```
在上面的代码中,我们先声明了time类,然后在date类中声明time类为友元类。接着,在time类中声明display函数为友元函数,以便可以访问date类的私有数据。最后,在display函数中输出time类的私有数据。
相关问题
已知下列程序,请将display改为普通函数,分别作为Time类和Date的友元函数。在主函数中调用display函数,实现输出和原来程序一样的结果。
```
#include<iostream>
using namespace std;
class Time;
class Date{
int year,month,day;
public:
Date(int y=0,int m=0,int d=0):year(y),month(m),day(d){}
friend void display(Date &d,Time &t);
};
class Time{
int hour,minute,second;
public:
Time(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){}
friend void display(Date &d,Time &t);
};
void display(Date &d,Time &t){
cout<<d.year<<"-"<<d.month<<"-"<<d.day<<" ";
cout<<t.hour<<":"<<t.minute<<":"<<t.second<<endl;
}
int main(){
Date d(2022,10,1);
Time t(12,30,0);
display(d,t);
return 0;
}
```
修改后的程序如下:
```
#include<iostream>
using namespace std;
class Time;
class Date{
int year,month,day;
public:
Date(int y=0,int m=0,int d=0):year(y),month(m),day(d){}
friend void display(Date &d, Time &t);
};
class Time{
int hour,minute,second;
public:
Time(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){}
friend void display(Date &d, Time &t);
};
void display(Date &d, Time &t){
cout<<d.year<<"-"<<d.month<<"-"<<d.day<<" ";
cout<<t.hour<<":"<<t.minute<<":"<<t.second<<endl;
}
int main(){
Date d(2022,10,1);
Time t(12,30,0);
display(d, t);
return 0;
}
```
已知shape类为抽象类包含get error程序函数getarea的返回类型为
由于题目中提到`Shape`类是一个抽象类,所以我们需要在其中定义纯虚函数`getArea`和`getError`,并将这两个函数的返回类型设为未知。
以下是代码实现:
```c++
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数
virtual double getError() = 0; // 纯虚函数
};
```
在上面的代码中,我们定义了一个`Shape`类,包含两个纯虚函数`getArea`和`getError`。这两个函数的返回类型都被设为未知,因为题目中没有给出具体的返回类型。我们可以在`Shape`类的派生类中对这两个函数进行具体实现。