c++ 的一些报错及修复

本文最后更新于:2020年8月16日 下午

做作业的时候遇到的 c++ 错误报错及其解决方法

error C4430: 缺少类型说明符 - 假定为 int。注意:C++ 不支持默认 int

我的错误是出现在没有把

using namespace std;

放在用 STL 之前。
举个例子

// 错误
#include <string>
const int MAXNUM = 10;
string str[MAXNUM];
using namespace std;
// 正确
#include <string>
using namespace std;
const int MAXNUM = 10;
string str[MAXNUM];

LNK2005:XXXXX 在 XX 中已经定义

我的错误是在 .h 文件中定义了变量。示例如下

// 错误示范
// 在 a.h 文件中定义了这么一个常量
const int NUMOFYEAR = 0;
// 正确写法
// 在 a.h 中只定义类,在 a.cpp 文件中定义常量
//a.h
只定义类不定义变量
//a.cpp
const int NUMOFYEAR = 0;

E0304 没有与参数列表匹配的 重载函数 “strcpy_s” 实例

换成用strcpy_s,但是直接改有问题,因为函数定义不一样。所以要修改程序,示例如下。

// 正确写法
char a[]="hello"
int n=strlen(a);
char* b=new char[a];
strcpy_s(b,n,a);

参考

strcpy, strcpy_s