|
| C++ hjælp Fra : Dr.Iskold |
Dato : 04-03-01 18:35 |
|
hej læser!
Hvordan kan jeg tælle på et objekt.funktion(), ligesom fx.n++, jeg skal
tælle fra et objekt tal til et andet objekt tal. jeg kan ikke gøre
objekt.funktion()++.
Dr.Iskold
| |
Daniel Schledermann (04-03-2001)
| Kommentar Fra : Daniel Schledermann |
Dato : 04-03-01 19:54 |
|
Dr.Iskold <hep@worldonline.dk> skrev i en
nyhedsmeddelelse:l4vo6.3024$jy5.277558@news010.worldonline.dk...
> Hvordan kan jeg tælle på et objekt.funktion(), ligesom fx.n++, jeg skal
> tælle fra et objekt tal til et andet objekt tal. jeg kan ikke gøre
> objekt.funktion()++.
Jeg tror ikke jeg helt forstår.
- Er det en attribut der skal ++'es?
- Er det "selve objektet" der skal ++'es?
- Eller er det resultatet af medlemsfunktionen der skal ++'es?
| |
Dr.Iskold (04-03-2001)
| Kommentar Fra : Dr.Iskold |
Dato : 04-03-01 19:57 |
|
Dr.Iskold
jeg har 2 tidsobjekter og en metode der sætter et sekund frem, denne metode
vil jeg gerne ++ til den når det andet tidsobjekt.
while (set_tid.setNext() <= alarm.reset(alarm_timer, alarm_minutter,
alarm_sekunder));
{
set_tid.setNext() ++;
}
"Daniel Schledermann" <daniel@schledermann.net> skrev i en meddelelse
news:97u2jd$jcp$1@news.inet.tele.dk...
>
> Dr.Iskold <hep@worldonline.dk> skrev i en
> nyhedsmeddelelse:l4vo6.3024$jy5.277558@news010.worldonline.dk...
> > Hvordan kan jeg tælle på et objekt.funktion(), ligesom fx.n++, jeg skal
> > tælle fra et objekt tal til et andet objekt tal. jeg kan ikke gøre
> > objekt.funktion()++.
>
> Jeg tror ikke jeg helt forstår.
> - Er det en attribut der skal ++'es?
> - Er det "selve objektet" der skal ++'es?
> - Eller er det resultatet af medlemsfunktionen der skal ++'es?
>
>
>
| |
Igor V. Rafienko (04-03-2001)
| Kommentar Fra : Igor V. Rafienko |
Dato : 04-03-01 20:11 |
|
* hep@worldonline.dk
> jeg har 2 tidsobjekter og en metode der sætter et sekund frem, denne
> metode vil jeg gerne ++ til den når det andet tidsobjekt.
>
> while ( set_tid.setNext() <=
> alarm.reset(alarm_timer, alarm_minutter, alarm_sekunder) );
^
trykkfeil?
> {
> set_tid.setNext() ++;
> }
Det virker da utrolig rart. Hvis du har et tidsobjekt (set_tid er,
imvho, et litt misvisende navn for et _objekt_), og vil øke denne med
1 tidsenhet, burde man nesten gjøre noe slikt:
++set_tid;
(altså, hvis man absolutt vil bruke operator overloading).
Dersom setNext() returnerer *this (altså, objektet selv) som du så vil
bruke op++(int) på, er det bare å definere de tilsvarende
pre/post-increment operatorne (og da burde man i samme slengen
definere op+=).
Hva er problemet rent konkret?
ivr, forvirret
PS. Er du sikkert på at du vil bruke _post_increment framfor
preincrement? Du blir nødt til å lage en kopi av tidsobjektet ditt
(eller hva det nå enn var som setNext returnerte)
--
Besides, meat tends to run away when possible, or fights. Either
response presents behavioral challenges too complex for any existing
robot.
-- Stuart Wilkinson, inventor of the "gastrobot"
| |
Dr.Iskold (04-03-2001)
| Kommentar Fra : Dr.Iskold |
Dato : 04-03-01 20:45 |
|
#include <iostream.h>
#include <conio.h>
#include "Clock.h"
int main()
{
Clock set_tid(24,0,0);
Clock alarm(24,0,0);
int timer, minutter, sekunder;
int alarm_timer, alarm_minutter, alarm_sekunder;
char besked;
//int n;
//int a;
cout<<"Indtast klokke tidspunkt hh, mm, ss:"<<endl;
cin >> timer >> minutter >> sekunder;
set_tid.reset(timer, minutter, sekunder);
cout<<"Sat tid:
"<<set_tid.hour()<<":"<<set_tid.minute()<<":"<<set_tid.second()<<endl;
cout<<"Indtast tidspunkt, naar alarmen skal ses hh, mm, ss:"<<endl;
cin >> alarm_timer >> alarm_minutter >> alarm_sekunder;
alarm.reset(alarm_timer, alarm_minutter, alarm_sekunder);
cout<<"Alarm tidspunkt:
"<<alarm.hour()<<":"<<alarm.minute()<<":"<<alarm.second()<<endl;
cout<<"Indtast den besked, du gerne vil se, naar alarmen gaar :";
cin >>besked;
set_tid.setNext();
cout<<"Alarm tidspunkt:
"<<set_tid.hour()<<":"<<set_tid.minute()<<":"<<set_tid.second()<<endl;
//while (set_tid.setNext() <= alarm.reset(alarm_timer, alarm_minutter,
alarm_sekunder));
// {
// n++;
// }
//
getch();
return 0;
}
problemet er at jeg ikke kan tælle på set_tid.setNext();
klassen clock er hjemmelavet
"Igor V. Rafienko" <igorr@ifi.uio.no> skrev i en meddelelse
news:xjvbsrhxscq.fsf@jarn.ifi.uio.no...
> * hep@worldonline.dk
>
>
> > jeg har 2 tidsobjekter og en metode der sætter et sekund frem, denne
> > metode vil jeg gerne ++ til den når det andet tidsobjekt.
> >
> > while ( set_tid.setNext() <=
> > alarm.reset(alarm_timer, alarm_minutter, alarm_sekunder) );
> ^
>
>
> trykkfeil?
>
>
> > {
> > set_tid.setNext() ++;
> > }
>
>
> Det virker da utrolig rart. Hvis du har et tidsobjekt (set_tid er,
> imvho, et litt misvisende navn for et _objekt_), og vil øke denne med
> 1 tidsenhet, burde man nesten gjøre noe slikt:
>
> ++set_tid;
>
> (altså, hvis man absolutt vil bruke operator overloading).
>
> Dersom setNext() returnerer *this (altså, objektet selv) som du så vil
> bruke op++(int) på, er det bare å definere de tilsvarende
> pre/post-increment operatorne (og da burde man i samme slengen
> definere op+=).
>
> Hva er problemet rent konkret?
>
>
>
>
>
> ivr, forvirret
> PS. Er du sikkert på at du vil bruke _post_increment framfor
> preincrement? Du blir nødt til å lage en kopi av tidsobjektet ditt
> (eller hva det nå enn var som setNext returnerte)
> --
> Besides, meat tends to run away when possible, or fights. Either
> response presents behavioral challenges too complex for any existing
> robot.
> -- Stuart Wilkinson, inventor of the "gastrobot"
| |
Igor V. Rafienko (05-03-2001)
| Kommentar Fra : Igor V. Rafienko |
Dato : 05-03-01 10:15 |
|
* hep@worldonline.dk
[snip]
> problemet er at jeg ikke kan tælle på set_tid.setNext();
> klassen clock er hjemmelavet
Takk for snutten, men den svarte fremdeles ikke på spørsmålet mitt:
_hva_ returnerer setNext()? Hvis det er en int, så kan du ikke
applisere op++(int) på denne (husker ikke hvor det står i standarden i
farten). Hvis den returnerer noe annet (og da er det kanskje lurt å
poste definisjonen av setNext()), så kan det hende det er noen
muligheter.
[snip excessive quoting]
ivr
--
Besides, meat tends to run away when possible, or fights. Either
response presents behavioral challenges too complex for any existing
robot.
-- Stuart Wilkinson, inventor of the "gastrobot"
| |
Dr.Iskold (05-03-2001)
| Kommentar Fra : Dr.Iskold |
Dato : 05-03-01 18:27 |
|
har løst det
while((set_tid.hour() != alarm.hour()) || (set_tid.minute() !=
alarm.minute()) || (set_tid.second() != alarm.second()))
{
set_tid.setNext();
}
"Igor V. Rafienko" <igorr@ifi.uio.no> skrev i en meddelelse
news:xjv4rx8ziev.fsf@bilskirnir.ifi.uio.no...
> * hep@worldonline.dk
>
> [snip]
>
> > problemet er at jeg ikke kan tælle på set_tid.setNext();
> > klassen clock er hjemmelavet
>
>
> Takk for snutten, men den svarte fremdeles ikke på spørsmålet mitt:
> _hva_ returnerer setNext()? Hvis det er en int, så kan du ikke
> applisere op++(int) på denne (husker ikke hvor det står i standarden i
> farten). Hvis den returnerer noe annet (og da er det kanskje lurt å
> poste definisjonen av setNext()), så kan det hende det er noen
> muligheter.
>
> [snip excessive quoting]
>
>
>
>
>
> ivr
> --
> Besides, meat tends to run away when possible, or fights. Either
> response presents behavioral challenges too complex for any existing
> robot.
> -- Stuart Wilkinson, inventor of the "gastrobot"
| |
Dr.Iskold (04-03-2001)
| Kommentar Fra : Dr.Iskold |
Dato : 04-03-01 20:46 |
|
#include <iostream.h>
#include <conio.h>
#include "Clock.h"
int main()
{
Clock set_tid(24,0,0);
Clock alarm(24,0,0);
int timer, minutter, sekunder;
int alarm_timer, alarm_minutter, alarm_sekunder;
char besked;
//int n;
//int a;
cout<<"Indtast klokke tidspunkt hh, mm, ss:"<<endl;
cin >> timer >> minutter >> sekunder;
set_tid.reset(timer, minutter, sekunder);
cout<<"Sat tid:
"<<set_tid.hour()<<":"<<set_tid.minute()<<":"<<set_tid.second()<<endl;
cout<<"Indtast tidspunkt, naar alarmen skal ses hh, mm, ss:"<<endl;
cin >> alarm_timer >> alarm_minutter >> alarm_sekunder;
alarm.reset(alarm_timer, alarm_minutter, alarm_sekunder);
cout<<"Alarm tidspunkt:
"<<alarm.hour()<<":"<<alarm.minute()<<":"<<alarm.second()<<endl;
cout<<"Indtast den besked, du gerne vil se, naar alarmen gaar :";
cin >>besked;
set_tid.setNext();
cout<<"Alarm tidspunkt:
"<<set_tid.hour()<<":"<<set_tid.minute()<<":"<<set_tid.second()<<endl;
//while (set_tid.setNext() <= alarm.reset(alarm_timer, alarm_minutter,
alarm_sekunder));
// {
// n++;
// }
//
getch();
return 0;
}
problemet er at jeg ikke kan tælle på set_tid.setNext();
klassen clock er hjemmelavet
| |
|
|