运行类时出错 您好,我现在正在进行一些C++学习,我好像困在课堂上了。我制作了这个程序,我需要得到一片比萨饼的价格。简单地说,我还不想输入数据,只是静态数据已经存在
代码如下:运行类时出错 您好,我现在正在进行一些C++学习,我好像困在课堂上了。我制作了这个程序,我需要得到一片比萨饼的价格。简单地说,我还不想输入数据,只是静态数据已经存在,c++,C++,代码如下: #include <iostream> #include <cmath> using namespace std; class Circle { public: Circle() { radius = 0; area = 0; } inline void setRadius(double r) { radius = r; } inline
#include <iostream>
#include <cmath>
using namespace std;
class Circle
{
public:
Circle()
{
radius = 0;
area = 0;
}
inline void setRadius(double r)
{
radius = r;
}
inline double getArea(double radius)
{
return 3.14 * pow(radius, 2);
}
private:
double radius;
double area;`
};
class Pizza
{
private:
double price;
double size;
double costperinch;
Circle Object;
public:
Pizza()
{
price = 0;
size = 0;
costperinch = 0;
}
~Pizza();
inline void setPrice(double p)
{
price = p;
}
inline void setSize(double radius)
{
size = Object.getArea(radius);
}
inline double costPeSqIn(double size, double price)
{
double costperinch = size * price;
}
};
int main()
{
Pizza myPizza;
myPizza.setPrice(5.0);
myPizza.setSize(3.14);
cout << "The cost per square inch of the pizza is ";
cout << myPizza.costPeSqIn(myPizza.setSize, myPizza.setPrice);
return 0;
}
#包括
#包括
使用名称空间std;
班级圈子
{
公众:
圈()
{
半径=0;
面积=0;
}
内联空隙设置半径(双r)
{
半径=r;
}
内联双区域(双半径)
{
返回3.14*pow(半径2);
}
私人:
双半径;
双区`
};
高级披萨
{
私人:
双倍价格;
双倍大小;
双肋;
圆形物体;
公众:
披萨
{
价格=0;
尺寸=0;
costperinch=0;
}
~Pizza();
内联无效设置价格(双p)
{
价格=p;
}
内联空隙设置尺寸(双半径)
{
大小=Object.getArea(半径);
}
内联双倍成本(双倍尺寸,双倍价格)
{
双倍成本=尺寸*价格;
}
};
int main()
{
披萨我的披萨;
myPizza.setPrice(5.0);
myPizza.setSize(3.14);
你的问题是线路
cout << myPizza.costPeSqIn(myPizza.setSize, myPizza.setPrice);
作为costPeSqIn
函数的实现,上面带有错误的行应该是
cout << myPizza.costPeSqIn();
一旦你自己声明了一个析构函数,编译器就不会自动为你生成一个析构函数,但是因为你没有任何定义,你的代码也不是格式错误
要解决此问题,您必须提供其定义,例如:
~Pizza()
{
// whatever code you want
}
或者删除声明,这样编译器将自动为您生成默认构造函数。我按照您所说的做了,但引用我的析构函数的未解析外部符号出现错误。我必须删除它才能使其正常工作,您知道为什么吗?谢谢!@user3709339最后更新了有关析构函数的信息。非常感谢.现在我明白了,我正试图通过输入所有内容来养成良好的编码习惯!
~Pizza();
~Pizza()
{
// whatever code you want
}