每当我尝试运行此代码时,它都会给我一个错误

时间:2016-02-21 17:36:50

标签: c++

#include<iostream>
#include<conio.h>
using namespace std;

class one
{
    int r;
public:
    one(int a) : r(a) {}
    void set(int a) { r = a; }
    int area() { return r*r*3.14; }
};

class two
{
    one x;
    int hi;
public:
    two(int r, int h)
    {
        hi=h;
        x.set(r);
    }

    int v() { return x.area()*hi; }
};

int main()
{
    _getch();
    return 0;
}
  

错误是:没有合适的默认构造函数可用。   你介意帮助我,以便我可以摆脱这个错误。   // ................................................ .............................

1 个答案:

答案 0 :(得分:0)

当你在x中声明two时,C ++基本上尝试使用没有任何参数的构造函数(默认构造函数)创建一个实例,因为&#34; null对象&#34;在C ++中不存在。

一个不提供默认构造函数,但它提供构造函数one(int a),因此使用one x;one x(0);

代替one x = one(0);