R6-1 写出派生类构造方法(C++)
时间: 2023-08-16 22:10:05 浏览: 115
派生类构造方法在定义时需要调用基类的构造方法,以初始化从基类继承的成员变量。在 C++ 中,派生类构造方法的定义格式如下:
```c++
class Derived : public Base {
public:
Derived(int derivedArg1, int derivedArg2, int baseArg) : Base(baseArg) {
// 派生类构造方法的实现
// ...
}
};
```
在上面的定义中,`Derived` 是派生类,`Base` 是基类。派生类构造方法的参数包括基类的构造方法需要的参数和派生类自己需要的参数。在构造方法的实现中,需要调用基类的构造方法来初始化从基类继承的成员变量,然后再初始化派生类自己的成员变量。
相关问题
R6-1 写出派生类构造方法(C++) 分数 10 全屏浏览题目 切换布局 作者 周强 单位 青岛大学 裁判测试程序样例中展示的是一段定义基类People、派生类Student以及测试两个类的相关C++代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行。 函数接口定义: 提示: 观察类的定义和main方法中的测试代码,补全缺失的代码。 裁判测试程序样例: 注意:真正的测试程序中使用的数据可能与样例测试程序中不同,但仅按照样例中的格式调用相关函数。 #include <iostream>
class People{
protected:
char *name;
int age;
public:
People(char *n, int a){
name = new char[strlen(n)+1];
strcpy(name, n);
age = a;
}
~People(){
delete []name;
}
};
class Student: public People{
private:
float score;
public:
// 请在此处补充派生类构造方法
Student(char *n, int a, float s): People(n, a){
score = s;
}
~Student(){}
};
int main(){
Student stu("Tom", 16, 90.5);
return 0;
}
R6-1 派生类的定义和使用
派生类是基于已有的基类创建的新类,它继承了基类的所有成员和方法,并可以添加自己的成员和方法。派生类可以重写基类的方法,也可以定义自己的方法。
派生类的定义格式如下:
```c++
class DerivedClass : accessSpecifier BaseClass {
// class members and functions
}
```
其中,`DerivedClass`是新创建的派生类的名称,`accessSpecifier`可以是`public`、`protected`或`private`,表示派生类继承基类成员的访问权限,`BaseClass`是基类的名称。
派生类的使用与基类类似,可以使用基类的成员和方法,也可以使用自己添加的成员和方法。可以通过派生类的对象访问基类的成员和方法,也可以通过基类的指针或引用访问派生类的成员和方法。
例如,下面的代码定义了一个基类`Shape`和两个派生类`Circle`和`Rectangle`:
```c++
#include <iostream>
using namespace std;
class Shape {
public:
void setWidth(int w) {
width = w;
}
void setHeight(int h) {
height = h;
}
protected:
int width;
int height;
};
class Circle : public Shape {
public:
double getArea() {
return 3.14 * width * width / 4;
}
};
class Rectangle : public Shape {
public:
int getArea() {
return width * height;
}
};
int main() {
Circle c;
c.setWidth(5);
cout << "Circle area is " << c.getArea() << endl;
Rectangle r;
r.setWidth(5);
r.setHeight(10);
cout << "Rectangle area is " << r.getArea() << endl;
return 0;
}
```
在这个例子中,`Circle`和`Rectangle`都继承了`Shape`的成员`width`和`height`,并且分别实现了自己的方法`getArea`。在`main`函数中,分别创建了`Circle`和`Rectangle`的对象,并设置了它们的宽度和高度,然后分别调用了它们的`getArea`方法输出面积。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)