【问题标题】:I have to define two functions related with classes我必须定义两个与类相关的函数
【发布时间】:2020-04-27 09:45:56
【问题描述】:

1.我的任务是包含一个类的组合,我必须返回在给定地址(作为参数)拥有超过 10 个房间的酒店我这样做了,但我不确定它是否正确:

int findHotel([], string add)
{
    for (int i = 0; i < 10; i++)
    {
        if (hotels[i].getName() == na)
            hotels[i].print();
    }
}

2.一个函数,返回至少有 10 个房间有 wifi 的酒店。

【问题讨论】:

  • 通过查看从代码中得到的编译器错误,您可能已经知道您编写的内容不正确。 How do I ask and answer homework questions?
  • 如果您需要代码方面的帮助,您应该在问题中包含minimal reproducible example 和编译器错误
  • 除了语法错误,你应该返回酒店,你声明了返回int的函数,但是你没有返回任何东西,看起来不太正确......
  • “我没有错误”...坦率地说,我不相信这一点,尽管我也无法说服自己,因为当我尝试编译它时,该代码会产生错误不完整的事实。请minimal reproducible example
  • 您应该退回它们还是打印它们?返回东西和打印东西是不一样的(尽管我们通常使用“输出”来指代两者)。

标签: c++ class oop


【解决方案1】:

上面有很多错误。

首先

int findHotel([], string add)

[] 这样的语法不合法。我猜你的意思是

int findHotel(Hotel hotels[], string add)

其中Hotel 是您的酒店等级的名称(抱歉,我在猜测,但您没有说它是什么)。

其次

if (hotels[i].getName() == na)

na 未声明,我不确定您的意思。在任何情况下,您的要求都是在给定地址拥有超过 10 间客房的酒店。这与酒店名称无关。您的if 声明中需要完全不同的东西。类似的东西

if (hotels[i].getAddress() == add && hotels[i].getNumberOfRooms() > 10)

我再次猜测是因为您没有发布酒店等级的定义,而是发布了类似的内容。

终于

hotels[i].print();

打印酒店与返回酒店相同。对于新手来说,困惑是很常见的事情。返回意味着函数必须将数据返回给函数调用者,而不是打印出来。所以你的函数需要改成return,而不是打印,所有有一定地址和10间以上房间的酒店。有很多不同的方法可以做到这一点,但这个答案已经足够长了,所以看看你的 C++ 书,它解释了如何从函数返回值。

最简单的方法是将酒店放入向量中并返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多