【发布时间】:2014-02-05 17:43:39
【问题描述】:
我有一个任务,我必须为我的函数使用不同的文件,并且我不必使用头文件。问题是编译器向我显示了各种错误。我的所有函数的所有错误都完全相同。
这是错误:
1>----- 构建开始:项目:Asignacion 1,配置:调试 Win32 ------
1> 排序公司.cpp
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(1): error C2065: 'Elemento' : undeclared identifier
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(1):错误 C2146:语法错误:在标识符“经销商”之前缺少 ')'
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(1):错误 C2182:“SortCompany”:非法使用“void”类型
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(1):错误 C2059:语法错误:')'
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(2):错误 C2143:语法错误:缺少 ';'在'{'之前
1>c:\users\emanuel\documents\visual studio 2013\projects\asignacion 1\asignacion 1\sortcompany.cpp(2): 错误 C2447: '{' : 缺少函数头(旧式正式列表? )
(所有文件的错误与上述相同.....)
1> 生成代码... ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========
我有 main.cpp,它是主文件(显然)。主调用“Menu.cpp”,菜单调用其他文件中的所有其他函数。
PD:Elemento[] 是一个结构
Menu.cpp 代码:
using namespace std;
//these functions are fine
void Closing(ifstream &, ofstream &);
void Opening(ifstream &, ofstream &);
//the problem is here with all these functions
void Registro(Elemento[], int &, ifstream &);
void InfoDealer(Elemento[], int, ofstream &);
void SortCompany(Elemento[], int);
void MayorVentas(Elemento[], int, ofstream &);
void MayorVentasPorMarca(Elemento[], int, ofstream &);
#include "Registro.cpp"
#include "InfoDealer.cpp"
#include "SortCompany.cpp"
#include "MayorVentas.cpp"
#include "MayorVentasPorMarca.cpp"
void Menu()
{
//code here...
}
Registro.cpp:
void Registro(Elemento Dealer[], int &Cantidad, ifstream &entrada)
{
//code here...
}
main.cpp:(这个文件是默认的。我不应该改变它。)
//include stuff
using namespace std;
const int MAXIMODEALERS = 20;
const int MAXIMOMODELOS = 6;
struct Detail
{
string ModelName;
int Sales;
};
typedef Detail Detalle;
struct Element
{
string CompanyName;
Detalle Modelo[MAXIMOMODELOS];
};
typedef Element Elemento;
Elemento Dealer[MAXIMODEALERS];
int Cantidad;
void Menu(void);
#include "Menu.cpp"
void Opening(ifstream &Entrada, ofstream &Salida)
{
//code
}
void Closing(ifstream &entrada, ofstream &salida)
{
//code
}
int main()
{
Menu();
return 0;
}
所有其余文件的结构都与 Registro.cpp 相同
希望你能帮助我!如果您需要更多详细信息,请询问。
【问题讨论】:
-
您确定这是一门C++课程,而不是一门C课程吗?
-
有什么建议吗?粉碎...?
-
你能告诉我们你的类的声明吗?
-
@0x499602D2 我添加了 main.cpp 但我们仍然没有使用类。下一个任务是将此程序更改为类:P
-
您不应该包含
.cpp文件。您应该改为包含头文件。将类及其方法的声明放入.h文件中,并使用.cpp文件来实现这些功能。在main.cpp中,只需执行#include "Registro.h"、#include "Menu.h"...。
标签: c++ file struct visual-studio-2013