我为getLength,getWidth和getArea设计了函数,我需要将它们分配给main函数中的int值,但我不知道如何。
我已在下面发布了我的标题,实现和main.cpp文件。
请adivse。
泰
标头文件
#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle
{
Rectangle();
public:
int getLength;
int getWidth();
int getArea(int x, int y)
};
#endif
实施档案
#include "Rectangle.h"
#include <iostream>
using namespace std;
int Rectangle::getLength()
{
int x = 0;
cout << "Enter Length: ";
cin >> x;
return x;
}
int Rectangle::getWidth()
{
int x = 0;
cout << "Enter Width: ";
cin >> x;
return x;
}
int Rectangle::getArea(int x, int y)
{
int area = x * y;
return area;
}
这是我开始遇到问题的地方。函数返回一个整数,但我不知道如何将返回整数赋值给int值。
#include "Rectangle.h"
#include "Rectangle.cpp"
#include <iostream>
#include <vector>
using namespace std;
int main() {
int area, length, width = 0;
vector <int> myVector;
cout << "Lets Make Some Rectangles: " << endl;
for (int i = 0; i < 5; i++) {
length = Rectangle::getLength();
width = Rectangle::getWidth();
area = Rectangle::getArea(length,width);
myVector.push_back(area);
}
int largest = 0;
for (int i = 0; i < 5; i++) {
if (myVector[i] >= myVector[i + 1]) {
largest = myVector[i];
}
}
cout << "The Largest Rectangle Has an Area of: " << largest;
system("pause");
return 0;
}
答案 0 :(得分:1)
只有当member function
在类Rectangle::getLength();
内声明为静态时,才能以getLength();
方式调用Rectangle
。
如果member functions
未声明为静态,则可以通过类的对象访问它们。
Rectangle obj;
length = obj.getLength();
此外,您正在越过向量myVector
的有效范围。您已在向量中插入了5个元素(从索引0到4),并在myVector[5]
时通过myVector[i] >= myVector[i + 1]
尝试访问第6个元素i = 4
。
找到最大的正确方法:
int largest = myVector[0];
for (int i = 1; i < myVector.size(); i++) {
if (largest > myVector[i]) {
largest = myVector[i];
}
}
答案 1 :(得分:0)
就我对C ++的了解而言,你需要创建成员变量来保存数据(宽度,长度),如果你需要创建构造函数,它将获取那些变量变量的参数:
Rectangle(int width, int length){
m_width = width;
m_length = length;
}
注意成员变量m_width
和m_length
并创建对象,它将使用构造函数保存数据。即
Rectangle myRectangle = Rectangle(5,5)