1

次の 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
4

2 に答える 2

0

これらの関数を Timer.c で使用し、この class::function を使用できます

于 2013-04-05T03:26:47.857 に答える
0

それが機能しない理由は、次の 2 つの理由によるようです。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
}

次に、メイン関数で、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 に答える