1

我有以下 Timer.cpp、Timer.h 和 main.cpp 文件。我正在尝试从我的 main.cpp 文件中的 Timer.cpp 文件中调用函数,并将 Timer.h 包含在 main.cpp 中,但它仍然无法正常工作。有人可以解释为什么吗?我对 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
4

2 回答 2

0

你可以在 Timer.c 中使用这些函数并使用这个 class::function

于 2013-04-05T03:26:47.857 回答
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
 }
于 2013-04-05T03:31:53.723 回答