字符串返回函数不起作用-'标识符定义不足'

时间:2019-01-15 01:22:11

标签: c++

经过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;
}

1 个答案:

答案 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