我用c ++创建一个程序,需要一些人将它们放在一个带有名称和年龄的向量中,然后我得到了所有代码,但是我无法正确编译它。
到目前为止这是我的代码
#include <iostream>
#include <string>
using namespace std;
class person
{
public:
string name;
int age;
void SetInfo(const string _name, int _age) //Här läggs den viktigaste informationen in
{
name = _name;
age = _age;
}
int getAge(){ return age; }
};
void bubblesort(person mylist[], int n) // Här startar Bubblesort funktionen
{
for (int i = 1; i<n; i++)
{
for (int j = 0; j<i - 1; j++)
{
if (mylist[j].getAge() > mylist[j + 1].getAge())
{
person temp;
temp = mylist[j];
mylist[j] = mylist[j + 1];
mylist[j + 1] = temp;
}
}
}
}
int main() //Program start
{
person mylist[4]; //lista på personer
mylist[0].SetInfo("Johan", 25);
mylist[1].SetInfo("Nathalie", 20);
mylist[2].SetInfo("Jessica", 60);
mylist[3].SetInfo("Coco", 54);
//anropar bubblesort()
bubblesort(mylist, 4);
int index = Linesearch(mylist, 25);
if (index == -1)
cout << "person ej funnen!";
else
cout << "personen du letade efter " << mylist[index].name;
cin.get();
return 0;
system("pause");
}
我认为这个问题是我的知识,因为我刚接触编程并且只用了4个星期。我把这段代码放在一起,从我自己和在网上找到的例子。所以每个答案都会帮助我了解更多:)
编辑: 仍然相同的代码在这里添加了错误消息。 50 39 C:\ Skrivbordet \ Skola \ ccxcxcxcvx.cpp [错误]&#39; Linesearch&#39;未在此范围内声明
答案 0 :(得分:2)
C ++程序开始时相当空白,除了main
之外没有任何功能可以使用。 (还有更多可以说的。我肯定评论会指出这一点。;))你包括<iostream>
和string
的标题,所以你可以使用在中声明的所有函数他们,这是一件好事!已经为你写了很多东西;例如,您无需了解如何将文本写入屏幕。
所有其他功能都由您自己编写 - 这也是 的好事!毕竟,编程语言的乐趣在于你不能做你想要的东西,因为“它没有任何功能”。
您已经编写(或可能已复制)一个自定义函数:bubblesort
。从那时起,您可以在任何地方使用它。它不在标准头文件中,但编译器将其视为一般功能;它所要做的就是从上到下阅读你的代码,并在遇到它们时存储新函数的名称。
问题所在:Linesearch
是函数的名称。编译器假定因为它后跟一个带括号的参数列表。因此,它在标准标题中查找Linesearch
,发现它不在那里,然后查看源代码 - 但仍然找不到它。普雷斯托!错误。
解决方案是使用现有的标准函数来执行您需要的函数(如果有的话)(我无法回想起),或者自己编写函数并将其放在源代码中main
以上的某处。 (它需要¹高于使用它的第一个函数,在这种情况下是main
。)
¹我在那里只讲了半个真相;但我想在依次扩展 之前,最好先阅读C ++入门。