C++ 程序中未解析的外部
Unresolved externals in c++ program
所以我的项目经理给了我一些 c++ 代码来完成。代码缺少某些部分,我需要填写。正如您在下面看到的,这是我完成代码后剩下的:
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
struct Cars {
char Name[20];
unsigned int Wheel;
double Speed;
};
#define database_size 10
#define database_filename "cars.txt"
void enter(Cars&, unsigned long);
int main()
{
Cars Car[database_size];
unsigned long database_length = 0;
char UserInput;
while (1) {
cout << endl;
cout << "Cars database" << endl;
cout << "1. Enter a new car model" << endl;
cout << "6. Exit the program" << endl << endl;
cout << "Please pick a number: ";
cin >> UserInput;
cout << endl;
switch(UserInput) {
case '1':
enter(Car[database_length], database_length);
break;
case '6':
return 0;
default:
cout << "Invalid entry" << endl << endl;
break;
}
}
}
void enter(Cars& unsigned long)
{
if (Cars == DATABASE_MAX)
{
cout << "Unfortunately the database is full ";
}
else
{
cout << "database not full";
}
}
现在我遇到的问题是,每当我编译时,它都会给我未解决的外部错误和未解决的符号错误。我在网上看了一下,大多数答案都与所谓的"链接时间"错误有关?但我不太确定这是否也适用于这里。
任何想法都会得到赞赏。
编辑:当前收到以下错误:"错误 C2513:'运算放大器':在'='之前没有声明变量"这可能与我使用错误的 if 类型有关吗?
这是一个
"链接时间"错误。 您对enter
参数的声明...
void enter(Cars&, unsigned long);
与enter
的参数的实现不匹配:
void enter(unsigned long Cars)
您需要一个与您使用它的方式相匹配的enter
实现(同时引用Cars
和unsigned long
(。 由于编译器看到您声明了它并在没有实现它的情况下使用了它,因此"未解析的外部"是编译器表示找不到它的方式。
帖子编辑
现在,您的声明和实现之间有几个新问题:
1( 贴花表示您有两个变量,一个是 Cars&
型变量,一个是 unsigned long
型变量:
void enter(Cars&, unsigned long);
您的实现没有逗号或变量名称(声明只需要类型,但实现也需要名称,以便您可以使用它们(。 而不是void enter(Cars& unsigned long)
你应该有...
void enter(Cars& arg_cars, unsigned long arg_number) {...}
其中arg_cars
和arg_number
是两个变量的名称。
2(您想更改函数中的第一行以检查要传入的数字:
if (arg_number == DATABASE_MAX) { ... }
3(你不会在任何地方定义DATABASE_MAX
。
相关文章:
- 如何运行外部程序,向其传递内存地址以读取/写入?
- C++外部程序的输入和输出管道
- 如何调用外部程序并在 C/C++ 中获取多个返回值
- GetAsyncKeyState() - 外部程序会干扰它
- 运行外部程序并获得返回的整数
- 在 c++ 中捕获外部程序的退出代码
- 从外部程序中捕获标准和标准输出 C++.
- 如何通过C 在Mac OS中运行外部程序
- 一个唱片播放器如何使用外部程序在CS:GO中杀人
- Qt:如何通过外部程序打开文件,"open with..."对话框
- C++外部程序集:我的代码中的错误在哪里
- 通过Qt崩溃运行外部程序
- Cpp 中的插件 - 执行外部程序函数
- Qt 执行外部程序
- 停止来自 C++ 代码的外部程序
- 视觉 从 C++ 应用程序执行的外部程序中的 CPU 负载有限
- 如何从服务启动外部程序
- C++暂停外部程序
- 几次调用后,外部程序的执行失败
- 如何在Windows中不显示cmd窗口的情况下运行带参数的外部程序