经过3年的JavaScript学习,重新学习C / C ++(我感到非常自在..)
我正在使用输入构建测试文件。 问题出在cTool中,第一个函数不允许我返回字符串。我认为如果头文件中包含该库,这是完全有效的吗?我在这里俯瞰什么。
cTool.cpp
string getInfo(void) {
}
void parseInfo(void (*getInfo)()) {
}
float assessInfo(float number) {
}
...
cTool.h
#pragma once
#ifndef ASSESS_GRADE_H
#define ASSESS_GRADE_H
#include <string>
#include <stdio.h>
#include <iostream>
using namespace std;
string getInfo(void);
void parseInfo(void(*getInputFunc)());
float assessInfo(float number);
float assessInfo(char letter);
float assessInfo(int *array);
#endif
cMain.cpp
#include "cTool.h";
int main (void) {
// function call from cTool.cpp
return 0;
}
答案 0 :(得分:2)
您需要将#include "cTool.h"
添加到cTool.cpp
中,而不仅仅是添加到cMain.cpp
中。否则,在编译cTool.cpp
时,编译器不知道string
是什么,因为它看不到您的#include <string>
和using namespace std;
语句(顺便说一句,{{1} }放在头文件中是个坏主意。)
cTool.cpp
using namespace std;
cTool.h
#include "cTool.h" // <-- ADD THIS!
std::string getInfo(void) {
}
void parseInfo(void (*getInfo)()) {
}
float assessInfo(float number) {
}
...
cMain.cpp
#pragma once
#ifndef ASSESS_GRADE_H
#define ASSESS_GRADE_H
#include <string>
#include <iostream>
std::string getInfo(void);
void parseInfo(void(*getInputFunc)());
float assessInfo(float number);
float assessInfo(char letter);
float assessInfo(int *array);
#endif