我有以下Timer.cpp,Timer.h和main.cpp文件。我试图从main.cpp文件中的Timer.cpp文件中调用函数,并在主函数中包含Timer.h,但它仍然无法正常工作。有人可以解释一下原因吗?我对C ++有点生疏,觉得我犯了一个愚蠢的错误。提前感谢您的帮助。
#Timer.h file
#ifndef __Notes__Timer__
#define __Notes__Timer__
#include <iostream>
class Timer {
public:
Timer();
void start();
void stop();
void clear();
float getDelta();
};
#endif
#Timer.cpp file
#include "Timer.h"
clock_t startTime;
clock_t stopTime;
Timer::Timer(){
startTime = 0;
stopTime = 0;
}//Timer
void start(){
startTime = clock();
}//start
void stop(){
stopTime = clock();
}//stop
float getDelta(){
return stopTime-startTime;
}//getDelta
#main.cpp file
#include "Timer.h"
#include <iostream>
using namespace std;
int main(){
char quit;
start();
cout << "Would you like to quit? Y or N: ";
cin >> quit;
if (quit != 'Y' || quit != 'y'){
while (quit != 'Y' || quit != 'y'){
cout << "Would you like to quit? Y or N: ";
cin >> quit;
}//while
}//if
else {
stop();
cout << getDelta();
exit(0);
}//else
}//main
答案 0 :(得分:0)
您可以在Timer.c中使用这些函数并使用此类:: function
答案 1 :(得分:0)
它似乎不起作用的原因是由于两件事:您的Timer函数定义与Timer类无关。例如,Timer.cpp中start的函数定义必须是
void Timer::start()
{
//Do stuff
}
Timer.cpp文件中的所有其他函数都需要遵循相同的语法。另外,startTime和stopTime变量应该放在Timer.h文件中,如下所示:
class Timer
{
private:
clock_t startTime;
clock_t stopTime;
public:
Timer();
void start();
//etc
}
接下来,在main函数中,您需要创建一个Timer对象:
int main()
{
char quit;
Timer* timer_obj = new Timer();
timer_obj -> start();
//Do stuff
timer_obj -> stop();
cout << timer_obj -> getDelta() ;
delete timer_obj ;
//exit
}