/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Underligt problem
Fra : Socketd


Dato : 30-07-03 01:24

Ok jeg giver op, håber en herinde kan hjælpe mig videre.
#ifndef dbLib_Timer
#define dbLib_Timer

#include <time.h>
#include "dbLibException.h"

using namespace std;

namespace dbLib {

class Timer {
   clock_t counter;
   
   public:
   class TimerError : public dbLibException {      //Exception class
      public:
      TimerError(const string& message = "TimerError") :
dbLibException(message) {}
   };
   
   Timer() throw(Timer::TimerError);
   void start() throw(Timer::TimerError);
   double stop() const throw(Timer::TimerError);
};

inline Timer::Timer() throw(Timer::TimerError) {
   counter = clock();
   if(counter == clock_t(-1))
      throw Timer::TimerError();
}

inline void Timer::start() throw(Timer::TimerError) {
   counter = clock();
   if(counter == clock_t(-1))
      throw Timer::TimerError();
}

inline double Timer::stop() const throw(Timer::TimerError) {
   clock_t counter2 = clock();
   if(counter2 == clock_t(-1))
      throw Timer::TimerError();
   
   return double(counter2 - counter) / CLOCKS_PER_SEC;
}

} //End namespace dbLib
#endif

Og så main filen:
#include <iostream>
#include "Timer.h"

using namespace std;
using namespace dbLib;

int main() {
   Timer timer();
   timer.start();
   double t = timer.stop();
   cout<<"t = "<<t<<endl;
}


Når jeg prøver at kompile får jeg (g++ under FreeBSD):
main.cpp: In function `int main()':
main.cpp:9: request for member `start' in `timer', which is of
non-aggregate type `dbLib::Timer ()()'
main.cpp:10: request for member `stop' in `timer', which is of
non-aggregate type `dbLib::Timer ()()'

mvh
socketd

 
 
Anders J. Munch (30-07-2003)
Kommentar
Fra : Anders J. Munch


Dato : 30-07-03 09:35

"Socketd" <db@NO_SPAM_traceroute.dk> wrote:

> Timer timer();

Her erklærer du en funktion ved navn 'timer', der ikke tager nogen
argumenter og returnerer en 'Timer'. Prøv i stedet

Timer timer;

mvh. Anders




Socketd (30-07-2003)
Kommentar
Fra : Socketd


Dato : 30-07-03 10:40

On Wed, 30 Jul 2003 10:34:54 +0200
"Anders J. Munch" <andersjm@dancontrol.dk> wrote:

> "Socketd" <db@NO_SPAM_traceroute.dk> wrote:
>
> > Timer timer();
>
> Her erklærer du en funktion ved navn 'timer', der ikke tager nogen
> argumenter og returnerer en 'Timer'. Prøv i stedet
>
> Timer timer;

Hmmm pinligt nok, kan det være java der "forurener" min C++'ske
tankegang eller er det fordi jeg åbenbart stadig ikke har lært at man
ikke skal kode, når man er træt? Anyway, takker for hjælpen!

mvh
socketd

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste