这个标头错误是由什么引起的

What is this header error caused by?

本文关键字:什么 错误      更新时间:2023-10-16

我使用的是头文件"sales.item"

我正在写一个小程序,它告诉我头文件有错误,而不是我的程序。不知怎么的,最后一句话不对。错误是说字符串isbn是私有的。

#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item item1, item2;
std::cin >> item1 >> item2;
if (item1.isbn() == item2.isbn()) { // this checks if item1 and item2 are same book

Sales_item类中,您忘记将isbn方法设置为public,并将其保留为默认的private可见性。

简而言之,它应该读成这样:

class Sales_item
{
  public:
    return_value isbn();
}

在C++类中,如果没有public:行,默认情况下它将是private

我要冒险去猜测你的类是这样定义的:

class Sales_item
{
    std::string isbn;
}

类和结构的成员数据有公共、私有和受保护的标签,类的成员默认标记为私有。您应该将其更改为:

class Sales_item
{
    public:
        std::string isbn;
}

编辑:

当您将()(带参数或不带参数)添加到标识符时,您就是在告诉编译器像函数一样调用它。去掉(),您的代码就可以工作了。