gpt4 book ai didi

c++ - 创建类时,可能未在返回类型中定义新类型

转载 作者:行者123 更新时间:2023-12-03 06:57:09 25 4
gpt4 key购买 nike

我刚刚开始从我们学校的在线模块中学习 OOP 和类(class),但我遇到了模块中提供的对象的问题。
这是对象:

//box.h
class Box
{
public:
//Properties
char Color[];
int Length, Width, Height;

//Methods
Box(int length, int width, int height);
int getVolume();
}

Box::Box(int length, int width, int height)
{
this.Width=width;
this.Height=height;
}

Box::getVolume()
{
return this.Length * this.Width * this.Height;
}
这就是在 main() 中调用它的地方
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include "box.h"
using namespace std;

int main()
{
Box box(2,3,4);
cout << "The volume of our box is: ";
cout << box.getVolume() << "." <<endl;
cout << endl;
system ("pause");
return EXIT_SUCCESS;
}
尝试编译它会给我一大堆编译错误:
Compile errors
我不知道从哪里开始,因为这是模块提供的代码,而且这里是星期六晚上,所以教授无法回答问题。
如果这低于社区的工资等级,我们深表歉意。我才刚刚开始 OOP,英语不是我的母语。

最佳答案

在 C++ this是指向您所在对象的指针,它不是引用,因此您需要这样做:

this->x
访问属性时 x .话虽如此,您甚至不需要 this如果与局部变量或参数没有冲突,则可以 x .
或者换句话说:
return Length * Width * Height;
注意,在定义构造函数时,你应该转向 constructor lists , 像这样:
Box::Box(int length, int width, int height) : Length(length), Width(width), Height(height)
{
}

关于c++ - 创建类时,可能未在返回类型中定义新类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64292623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com