【发布时间】:2018-10-23 01:51:56
【问题描述】:
您好,我是一名学习 c++ 的学生,我刚刚开始学习 OOP。问题出在我的 MAIN 中,但是我正在显示我的所有文件,以防它来自另一个文件。
我已经编写了我的 hpp 和 cpp 文件,现在我正在我的 main 上进行测试。该类称为 Box,当我创建一个对象 box1 或 box 2 并尝试访问我的函数时,它说有两个参数。不管我是放 box1.calcVolume(double h, double w, double l) 还是 box1.calcVolume();
所以问题出在以下行:
double volume2 = box2.calcVolume();
double volume1 = box1.calcVolume();
double surfaceArea1 = box1.calcSurfaceArea();
如果有人能发现我想念的东西,我们可能不明白,请告诉我。
这是头文件:
#pragma once
#include <iostream>
#ifndef BOX_HPP
#define BOX_HPP
class Box
{
private:
double height;
double width;
double length;
public:
void setHeight(double h);
void setWidth(double w);
void setLength(double l);
double calcVolume(double h, double w, double l);
double calcSurfaceArea(double h, double w, double l);
Box();
Box(double height, double width, double length);
};
#endif
这是 CPP 文件
#include <iostream>
#include "Box.hpp"
Box::Box()
{
setHeight(1);
setWidth(1);
setLength(1);
}
Box::Box(double h, double w, double l)
{
setHeight(h);
setWidth(w);
setLength(l);
}
void Box::setHeight(double h)
{
height = h;
}
void Box::setWidth(double w)
{
width = w;
}
void Box::setLength(double l)
{
length = l;
}
double Box::calcVolume(double h, double w, double l)
{
double volume;
volume = h * w * l;
return volume;
}
double Box::calcSurfaceArea(double h, double w, double l)
{
double surfaceArea;
surfaceArea = 2 * (h*w) + 2 * (h*l) + 2 * (l*w);
return surfaceArea;
}
我的 BoxMain 文件:
#include <iostream>
#include "Box.hpp"
using std::cout;
using std::cin;
using std::endl;
int main()
{
Box box1(1.1, 2.4, 3.8);
Box box2;
box2.setHeight(12);
box2.setWidth(22.3);
box2.setLength(2.3);
double volume2 = box2.calcVolume();
double volume1 = box1.calcVolume();
double surfaceArea1 = box1.calcSurfaceArea();
cout << box1.calcVolume(); << endl; //testing different methods
return 0;
}
【问题讨论】:
-
calcVolume()接受参数。您试图在不传递参数的情况下调用它 -
@GBlodgett 好吧,所以当我尝试 box1.calcVolume(double h, double w, double l);它给了我同样的错误。你指的是这个吗?
-
看
box2.setWidth(22.3);,你正在调用一个接受一个参数的成员函数并且你正在传递一个值22.3。您编写的其他函数也可以接受参数,但您没有传递任何东西。这是一个错误。 -
这是一个语法错误。它应该会给你一个不同的错误信息。
标签: c++ function oop object function-call