继续收到错误,说我的主要功能中引用了我的类

时间:2016-07-19 18:18:44

标签: c++ class

所以我开始学习课程,在我的程序中,我一直收到一个错误,说我的主要功能在我尝试使用它时引用了我的课程,但我不知道为什么我会收到这个错误... < / p>

#include <iostream>

using namespace std;

class cylinder
{
    double Radius;
    double Height;
public:
    cylinder();
    void set_radius(double Rad);
    void set_height(double Hei);
    void resize(int Rad, int Hei);
    double get_radius()const;
    double get_height(int Height)const;
    double get_area(int Rad, int Height);
    double get_volume(int Rad, int Height);
    int compare_area(int Rad, int Height);
    int compare_volume(int Rad, int Height);
};


void cylinder::set_radius (double Rad)
{
    Rad = Radius;
}

void cylinder::set_height(double Hei)
{
    Height = Hei;
}
double cylinder::get_radius() const
{
    return Radius;
}





int main()
{


    cylinder cyl1;
    cyl1.set_radius(3.5);
    cyl1.set_height(7);
    cout << cyl1.get_radius();
    system("Pause");
    return 0;
}

1 个答案:

答案 0 :(得分:0)

评论中提到的NathanOliver。您需要完成您的构造函数定义才能使其正常工作:

class cylinder
{
 // ..

public:
    cylinder() {} // << add the body {}

// ..
}

或者您可以删除所有与构造函数相关的默认代码,让编译器在内部处理它。但请注意并提及juanchopanza,将默认构造函数保持为空可能会导致您的类成员使用垃圾值进行初始化 - 非零。为此你可以通过实际实现它来避免这种情况,并且可以在你的课外完成,如下所示:

cylinder::cylinder()
{
   // set default values here
   this->Radius = 0;
   //..
}

同样提及drescherjm,您的set_radius(double Rad)中存在逻辑错误,应该是这样的:

void cylinder::set_radius(double Rad)
{
    this->Radius = Rad;
}