C++ 编译器在声明类时显示未定义的结构错误
错误消息: 这是联系人簿程序的类声明C++ 编译器在声明类时显示未定义的结构错误,c++,compiler-errors,turbo-c++,C++,Compiler Errors,Turbo C++,错误消息: 这是联系人簿程序的类声明 void sort(AddressBook []); void NumberSort(AddressBook []); void Delete(AddressBook [], int pos); void LinearSearch(AddressBook [], char a[]); 上述声明中的这些行在TurboC++编译器中显示为错误。谁能告诉我为什么 由于您无法提供最简单的示例,我为您提供了: class AddressBook {
void sort(AddressBook []);
void NumberSort(AddressBook []);
void Delete(AddressBook [], int pos);
void LinearSearch(AddressBook [], char a[]);
上述声明中的这些行在TurboC++编译器中显示为错误。谁能告诉我为什么 由于您无法提供最简单的示例,我为您提供了:
class AddressBook
{
void sort(AddressBook[]);
};
这个声明编译了一个现代编译器,但不是在Turbo C++上编译。 您可以将其称为编译器错误
有两种选择:- 你重新思考你的程序,用另一种方式编写它 < L>使用现代C++编译器
改变学校是另一个有价值的选择。在C++中,当数组作为参数传递时,它的初始地址传递给形式参数。借助这种技术,代码可以编写如下
void sort(AddressBook*);
void NumberSort(AddressBook*);
void Delete(AddressBook*, int pos);
void LinearSearch(AddressBook*, char a[]);
我已经为我的问题实现了相同的方法,并且它刚刚起作用。您能将错误信息粘贴到问题上吗?您在声明类时提到了未定义的结构错误。我在您的代码中看不到结构?将这些函数作为成员函数对我来说没有多大意义。您知道TurboC++至少有20年的历史吗?如果你有一个更现代的编译器/想法,你会更好。请详细说明你的问题,也许可以发布一篇文章。我的编译器接受
类地址簿
声明以及您在问题中提到的其他声明。确切的错误消息是什么?它发生在哪一行?@JohnSmith您只显示了代码的一部分。也许这就是为什么它在这里编译得很好。请做一份报告。这需要一些工作,但没有这些,很难帮助。您在问题中显示的代码没有明显错误。问题可能来自你没有显示的代码部分。非常感谢。。。为什么不在Turbc++上工作?@ JohnSmith可能是因为它是一个古董,不符合编译器。@ JohnSmith可能是因为它早于最古老的标准C++版本。也就是说,在标准C++存在之前,它被编程和分发,因此缺少C++的一些特性。这就是你不应该使用它的原因。没错,但这不是问题的重点,因为这已经是代码正在做的事情了(t[]
在函数param中正是t*
)-关键的突出点是t[]
表单由于任何原因都不受支持。
void sort(AddressBook*);
void NumberSort(AddressBook*);
void Delete(AddressBook*, int pos);
void LinearSearch(AddressBook*, char a[]);