gpt4 book ai didi

c++ - 无法编译 C++ 构造函数

转载 作者:太空狗 更新时间:2023-10-29 23:26:41 24 4
gpt4 key购买 nike

任何人都可以向我解释这段代码有什么问题以及如何解决它吗?这是一个更大项目的一部分,如果您需要更多信息以便给出答案,请告诉我。

我得到的错误是这样的:

  g++ -c search.cpp
search.cpp: In constructor ‘Search::Search()’:
search.cpp:26:26: error: ‘callnumber’ was not declared in this scope
make: *** [search.o] Error 1



Search::Search()
{
ifstream input;
input.open("data.txt", ios::in);

if(!input.good())
//return 1;
string callnumber;
string title;
string subject;
string author;
string description;
string publisher;
string city;
string year;
string series;
string notes;

while(! getline(input, callnumber, '|').eof())
{
getline(input, title, '|');
getline(input, subject, '|');
getline(input, author, '|');
getline(input, description, '|');
getline(input, publisher, '|');
getline(input, city, '|');
getline(input, year, '|');
getline(input, series, '|');
getline(input, notes, '|');


Book *book = new Book(callnumber, title, subject, author, description, publisher, city, year, series, notes);
Add(book);
}

input.close();

}

最佳答案

在这条线上:

if(!input.good())
//return 1;
string callnumber;

您用分号注释掉了该行并且没有使用大括号,并且 C++ 在标记之间的空格和换行符1 时对空白不敏感,因此通过删除评论(并添加缩进)我们可以看到它等同于

if (!input.good())
string callnumber;

而且我们可以看到 callnumber 的声明是 if 的局部声明。添加大括号或分号,使 callnumber 的声明位于 if 之外(或完全删除它):

if (!input.good()) { // or ;
//return 1;
}
string callnumber;

1 除了在宏中

关于c++ - 无法编译 C++ 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507874/

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