gpt4 book ai didi

c++ - 表达式必须有类类型

转载 作者:行者123 更新时间:2023-11-28 00:49:06 25 4
gpt4 key购买 nike

我不希望这是我的第一篇文章,但我在这里不知所措。我在尝试编译我的程序(应该只是找到矩形的面积和周长)时不断收到此错误。这是我的头文件。

#include <iostream>
using namespace std;

class Rectangle
{
public:
Rectangle(float Lngth=1, float Wdth = 1);

void setLngth(float Lngth);
void setWdth(float Wdth);
float getLngth(float Lngth);
float getWdth(float Wdth);
void Perimeter(float lngth, float wdth);
void Area(float lngth, float wdth);
private:
float Lngth;
float Wdth;
};

这是我的 .cpp 文件。

#include <iostream>
using namespace std;

#include "RealRectangle.h" // Employee class definition


Rectangle::Rectangle(float Lngth, float Wdth)
{
&Rectangle::setLngth;
&Rectangle::setWdth;
}
void Rectangle::setLngth(float Lngth)
{
if((Wdth > 0.0) && (Wdth < 20.0))
float wdth = Wdth;
else
cout<<"Invalid Width."<<endl;
}

float Rectangle::getLngth(float Lngth)
{
return Lngth;
}

void Rectangle::setWdth(float Wdth)
{
if((Wdth > 0.0) && (Wdth < 20.0))
float wdth = Wdth;
else
cout<<"Invalid Width."<<endl;
}

float Rectangle::getWdth(float Wdth)
{
return Wdth;
}

void Rectangle::Perimeter(float lngth, float wdth)
{
cout<<"The Perimeter is "<<(2*(lngth + wdth));
}
void Rectangle::Area(float lngth, float wdth)
{
cout<<"The Area is "<<(lngth * wdth);
}

这就是我不断遇到错误的地方。编译器告诉我添加一个符号来创建一个指针,就像我在 .cpp 中所做的那样。但这本身会造成另一个错误。等等。我不确定我做错了什么。错误发生在第 10 行和第 11 行。

#include <iostream>
using namespace std;

#include "RealRectangle.h"


int main()
{
Rectangle rectangle1();
Rectangle rectangle2();

cout<<rectangle1.Perimeter();
cout<<rectangle2.Area();
}

最佳答案

您遇到了被称为最令人烦恼的解析。

Rectangle rectangle1();
Rectangle rectangle2();

声明了两个函数,而不是两个对象。做

Rectangle rectangle1;
Rectangle rectangle2;

此外,您可能应该将那些 &Rectangle::setLngth 更改为函数调用。

关于c++ - 表达式必须有类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017796/

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