我试图从一个简单的程序中抽象出一个方法。此方法根据预先声明的 CAPACITY 常量测试数组的长度,如果不满足条件,则会发出错误消息。但是,我无法使用 .cpp 文件创建头文件来保存该方法。
头文件:
//arrayHelper.h
#ifndef ARRAYHELPER_H
#define ARRAYHELPER_H
void arrayLengthCheck(int & length, const int capacity, string prompt);
#endif // ARRAYHELPER_H
代码文件:
//arrayHelper.cpp
#include <iostream>
#include <string>
#include "arrayHelper.h"
using namespace std;
void arrayLengthCheck(int & length, const int capacity, string prompt)
{
// If given length for array is larger than specified capacity...
while (length > capacity)
{
// ...clear the input buffer of errors...
cin.clear();
// ...ignore all inputs in the buffer up to the next newline char...
cin.ignore(INT_MAX, '\n');
// ...display helpful error message and accept a new set of inputs
cout << "List length must be less than " << capacity << ".\n" << prompt;
cin >> length;
}
}
运行这个 main.cpp 文件,其中包含头文件中的#include "arrayHelper.h"
错误。string is not declared
在头文件中包含字符串无效,但#include "arrayHelper.cpp"
会导致重新定义方法。我应该如何解决这个问题?