运行类时出错
Error running classes
你好,我现在正在学习一些c++,我似乎被困在课堂上了。我做了这个程序,我需要得到一片披萨的价格。只是我不想输入数据,只是静态数据已经到位。
代码如下:
#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;
}
得到以下错误:
错误1错误C3867: 'Pizza::setSize':函数调用缺少参数列表;使用'&Pizza::setSize'创建一个指向成员c:usersjorgedocumentsvisual studio 2013projectsobject1对象合成
错误2错误C3867: 'Pizza::setPrice':函数调用缺少参数列表;使用'&Pizza::setPrice'创建一个指向成员c:usersjorgedocumentsvisual studio 2013projectsobject1对象合成
你的问题是行
cout << myPizza.costPeSqIn(myPizza.setSize, myPizza.setPrice);
代码末尾的。你的编译器抱怨,因为setSize
和setPrice
是函数,但你没有为它们提供参数。无论如何,我怀疑你一开始是想这么做的。
实际上我认为你想要的是:
inline double costPeSqIn()
{
return size * price;
}
作为costPeSqIn
函数的实现,上面有错误的行应该是
cout << myPizza.costPeSqIn();
这样对我来说更有意义。
你目前传递setter函数到costPeSqIn
的方式没有意义,你原来的costPeSqIn
声明了一个双返回类型,但没有返回任何东西。
至于析构函数的问题,你得到:
~Pizza();
,因此声明了析构函数。一旦你自己声明了析构函数,编译器就不会自动为你生成一个,但是因为你在任何地方都没有定义,或者你的代码格式不好。
要解决这个问题,你必须提供它的定义,例如:
~Pizza()
{
// whatever code you want
}
相关文章:
- 分段错误当我试图运行程序时出错
- 运行命令 "rosbag play example.bag" 时出错。找不到与插件 rosbag/NoEncryptor 对应的库
- 从反向顺序C++访问矢量时运行时出错
- 合并两个排序链表时运行时出错
- 从主线程中询问运行对象表 (ROT) 时出错
- 在调试模式下,所有程序都运行良好,但在发布模式下,我在cudaMalloc操作中出错
- 如何在 C/C++ 中运行阿克曼函数而不会出错?
- 在VS2015中访问类成员时运行时错误,但在Linux上未访问时出错
- 在 Qt 中将 x 可执行文件作为按钮事件运行时出错
- 运行时动态加载库时出错"unresolved external symbol"
- 尝试使用浮点参数运行重载函数时出错
- 可执行文件在运行时出错
- 在 Eclipse.It 中运行C++代码时出错,'Your program cannot output..'
- 在 gdb 中运行 c++ 代码时出错:[下级 1(进程 9985)正常退出]
- iOS:在真实设备上运行项目时出错
- 使用 G++ 在终端中运行.cpp文件时出错
- 运行 shell 脚本时出错:"pipe call failed"
- 尝试在Qt中运行应用程序时出错
- 使用 FFMPEG 将每个输入图像转换为 H264 编译时出错,该图像在 MevisLab 中运行的 Visual St
- 运行调试库项目时发布库出错