据我所知,很多人一直在问这个问题,Stack Overflow上也有类似问题,但我似乎无法理解它们。我希望有人告诉我它为什么会发生,但也发生了什么。
我正在对这个随机程序进行编码,以演示如何将类与主文件分开,然后我开始收到此错误,我正在试着弄清楚如何修复它。
基本上,类.cpp文件不起作用,因为每个函数都说我的头文件中的类不是类或命名空间不正确。我已经看过几十次了,似乎没有什么不合适,拼写不正确或链接不正确,所有文件都在同一个项目和文件夹中。
代码的相关部分:
的main.cpp
gateway: $("#gateway").val(),
IQclass.h
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <cstdlib>
#include "IQclass.h"
using namespace std;
int main()
{
IQclass IC;
srand(time(NULL));
IC.nameInput();
IC.multiplierSelection();
IC.setCycle();
IC.forLoop();
return 0;
}
IQclass.cpp
#ifndef IQCLASS_H
#define IQCLASS_H
class IQclass
{
public:
//IQclass();
void nameInput();
void multiplierSelection();
void setCycle();
void calc();
void printIQ();
void randGen();
void forLoop();
};
#endif //IQCLASS_H
错误:
#include "IQclass.h"
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <cstdlib>
int y;
long int a;
int m;
int c;
char name[40];
using namespace std;
/* IQclass::IQclass()
{
cout << "\ninitializing...\n\n\n"; //dont ever do this i did it to be funny
typicaly constructers are used to set variables to a defualt state when the
object is created
_sleep(3000);
}
*/
void IQclass::nameInput() (ERROR HERE Line 28)
{
cout << "What is your name?\n\n";
cin >> name;
}
void IQclass::multiplierSelection(){ (ERROR HERE Line 34)
cout << "\nWhat should the multiplier be?\n\n ";
cin >> m;
}
void IQclass::setCycle() { (ERROR HERE Line 39)
cout << "\nwhat shoud the cycle be?\n\n";
cin >> c;
}
void IQclass::calc() { (ERROR HERE Line 44)
a = y*m;
}
void IQclass::printIQ() { (ERROR HERE Line 48)
cout << name << "'s IQ is probably: " << y << endl << "That times: " << m <<
" is " << a << endl << endl;
}
void IQclass::randGen() { (ERROR HERE Line 52)
y = rand() % 160;
};
void IQclass::forLoop() { (ERROR HERE Line 56)
for (int x = 0; x < c;) {
randGen();
calc();
printIQ();
x = x + 1;
};
};
答案 0 :(得分:2)
当我在笔记本电脑中键入你的代码时(win7,VS2015)。发生同样的错误。 我只是在IQClass.cpp文件中稍微修改一下。
自:
#include "IQclass.h"
#include "stdafx.h"
TO:
#include "stdafx.h"
#include "IQclass.h"
我想每次都应该包括#include&#34; stdafx.h&#34;第一