小编Yeo*_*ari的帖子

如何在同一行定义默认构造函数和用户定义构造函数?

在我的大学课堂上,我们正在处理继承问题,尽管我教授的代码让我感到困惑并且似乎有点不对劲。

class Circle
{
  protected:
    double radius;
  public:
    Circle(double = 1.0);
    double calcval();
};

Circle::Circle(double r)
{
  radius = r;
}
Run Code Online (Sandbox Code Playgroud)

在这里,她在类中创建一个默认构造函数,然后在类外部创建一个单独的用户定义构造函数。当我最初看到这一点时,我认为必须有一种方法可以更有效地做到这一点,从而占用更少的空间,使代码更具可读性。

经过一些在线搜索后,我找到了一些我尝试过的资源,尽管我仍然遇到一些错误。这是我尝试过的“Circle”类的构造函数。

class Circle
{
    protected:
        double radius;

    public:
        double calcVal();

        Circle(double r = 1.0) : radius(r) {}
};
Run Code Online (Sandbox Code Playgroud)

它是否正确?我试图使默认构造函数设置 radius = 1.0 并有一个构造函数将 radius = 设置为“r”(用户输入)。

我们还有另一个派生类“Cylinder”,我尝试做类似的事情但收到错误。

这是我教授的实现。

class Cylinder : public Circle
{
  protected:
    double length;
    double volume;
  public:       
    Cylinder(double r, double len);
    double calcval();
};

Cylinder::Cylinder(double r, double len){
    length =len;
    this->radius =r;
}
Run Code Online (Sandbox Code Playgroud)

然后这就是我尝试的。

class …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor class object

1
推荐指数
1
解决办法
330
查看次数

标签 统计

c++ ×1

class ×1

constructor ×1

inheritance ×1

object ×1