实现一个类a,在a中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数geta()取得a的值和getb()取b的值。实现类b从a继承,覆盖geta(),使其返回a的2倍。主函数
时间: 2023-05-01 21:05:43 浏览: 109
这道题目的意思是实现一个函数a,在a中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数geta()和getb(),分别取得a和b的值。实现类b继承a,覆盖geta()函数()使其返回a的两倍。主函数中要调用geta()和getb()函数。
相关问题
任务描述 设计一个日期( my_date )类、时钟( my_clock )类和时间类( my_time ),编写 display 函数用于显示日期和时钟。要求将 my_time 类声明为 my_date 类和 my_clock 类的友元类,通过 my_time 类中的 display 函数引用 my_date 类对象和 my_clock 类的私有数据,输出年、月、日和时、分、秒 my_time 类描述 静态成员函数 display(const my_date &, const my_clock &);: 输出日期和时间的函数。输出格式如下:YYYY/MM/DD hh:mm:ss。 my_clock 类描述 成员变量 hour: 一个表示当前小时的整型变量。 成员变量 minute: 一个表示当前分钟的整型变量。 成员变量 second: 一个表示当前秒钟的整型变量。 成员函数 my_clock(int, int, int);: 构造函数。初始化成员变量。 my_date 类描述 成员变量 year: 一个表示当前年份的整型变量。 成员变量 month: 一个表示当前月份的整型变量。 成员变量 day: 一个表示当前天数的整型变量。 成员函数 my_date(int, int, int);: 构造函数。初始化成员变量。
以下是代码实现:
```
#include <iostream>
#include <iomanip>
using namespace std;
class my_clock;
class my_date {
private:
int year;
int month;
int day;
public:
my_date(int y, int m, int d) : year(y), month(m), day(d) {}
friend class my_time;
friend void my_time::display(const my_date&, const my_clock&);
};
class my_clock {
private:
int hour;
int minute;
int second;
public:
my_clock(int h, int m, int s) : hour(h), minute(m), second(s) {}
friend class my_time;
friend void my_time::display(const my_date&, const my_clock&);
};
class my_time {
public:
static void display(const my_date& date, const my_clock& clock) {
cout << setfill('0') << setw(4) << date.year << "/"
<< setw(2) << date.month << "/"
<< setw(2) << date.day << " "
<< setw(2) << clock.hour << ":"
<< setw(2) << clock.minute << ":"
<< setw(2) << clock.second << endl;
}
};
int main() {
my_date date(2021, 11, 11);
my_clock clock(11, 11, 11);
my_time::display(date, clock);
return 0;
}
```
在上面的代码中,我们定义了三个类:`my_date`、`my_clock` 和 `my_time`。其中,`my_date` 和 `my_clock` 分别代表日期和时钟,它们有各自的成员变量和构造函数。`my_time` 类是一个静态类,其中包含一个静态成员函数 `display`,用于输出日期和时间。
在 `my_date` 和 `my_clock` 类中,我们使用 `friend` 关键字将 `my_time` 类声明为友元类,这样在 `my_time` 类中就能够访问 `my_date` 和 `my_clock` 的私有成员变量了。
在 `my_time` 类的 `display` 函数中,我们使用了 `setfill` 和 `setw` 函数来控制输出格式,确保年、月、日、时、分、秒都是两位数。然后,我们将 `my_date` 和 `my_clock` 对象作为参数传递给 `display` 函数,输出日期和时间。
在 `main` 函数中,我们创建了一个 `my_date` 对象和一个 `my_clock` 对象,然后调用 `my_time::display` 静态函数输出它们的日期和时间。
6、下列各类函数中,不是类的成员函数( ) A、构造函数 B、析构函数 C、友元函数 D、构造函数 7、作用域运算符“::”的功能是( ) A、标识作用域的级别的 B、指出作用域的范围的 C、给定作用域的大小的 D、标识成员时属于哪个类的 8、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的( ) A、void print() const; B、const void print(); C、void const print(); D、void print(const); 9、在类定义的外部,可以被访问的成员有( ) A、所有类成员 B、private的类成员 C、public的类成员 D、public或private的类成员 10、已知:int m = 10;下列表示引用的方法中,正确的是( ) A、int &Z; B、int &t = 10; C、int &X = m; D、float &f = &m;
6、不是类的成员函数的是 C、友元函数。构造函数(选项 A)和析构函数(选项 B)都是类的特殊成员函数,用于对象的创建和销毁。而友元函数(选项 C)虽然与类有关联,但它并不是类的成员函数,它可以访问类的私有成员,但不属于类本身。
7、作用域运算符"::"的功能是 D、标识成员时属于哪个类的。作用域运算符用于指明一个标识符(变量、函数等)属于哪个类或命名空间。它可以用于访问类的静态成员、静态函数以及命名空间中的成员。
8、正确的表示是 A、void print() const;。在表示类的常成员函数时,const关键字位于函数声明的末尾,表示该成员函数不会修改类的数据成员。
9、在类定义的外部,可以被访问的成员有 C、public的类成员。类的public成员可以在类定义外部通过对象访问。
10、正确的表示是 C、int &X = m;。引用是一个别名,需要使用已存在的变量进行初始化。选项 A 中的 int &Z;没有初始化对象;选项 B 中的 int &t = 10;试图将字面值常量赋值给引用,不合法;选项 D 中的 float &f = &m;试图将整型指针赋值给浮点型引用,不合法。只有选项 C 中的 int &X = m;将已存在的整型变量m赋值给引用,是合法的。
阅读全文