编译器在声明类时显示未定义的结构错误

时间:2017-06-01 13:13:34

标签: c++ compiler-errors turbo-c++

错误讯息:

1980s screenshot of the problem

Link to full program

 void sort(AddressBook []);
 void NumberSort(AddressBook []); 
 void Delete(AddressBook [], int pos); 
 void LinearSearch(AddressBook [], char a[]);

这是联系簿计划的类声明。

mysql2

上述声明中的这些行在TurboC ++编译器中显示为错误。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:0)

在C ++中,当将数组作为参数传递时,其初始地址将传递给形式参数。借助这种技术,代码可以编写如下

 void sort(AddressBook*);
 void NumberSort(AddressBook*); 
 void Delete(AddressBook*, int pos); 
 void LinearSearch(AddressBook*, char a[]);

我已经针对我的问题实施了同样的事情,并且一切正常。

答案 1 :(得分:-1)

由于你无法制作最少的例子,我为你做了:

class AddressBook
{
  void sort(AddressBook[]);
};

此声明在现代编译器上编译良好,但在Turbo C ++上编译。 你可以称之为编译器错误。

有两种选择:

  • 你重新考虑你的程序并以另一种方式写它
  • 您使用的是现代C ++编译器

改变学校将是另一个有价值的选择。