如何从main.cpp文件中的单独cpp文件调用函数?

时间:2013-04-05 03:23:21

标签: c++ file function header

我有以下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

2 个答案:

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