Nu wilde ik thuis werken aan een code die ik op school gemaakt had en werkte, maar hier onder linux/gcc-cpp doet hij het niet. Nu heb ik wel gehoord dat borland kuren heeft, maar ik zie zo snel niet waar de fout in zit. Waarschijnlijk heel makkelijk maar ik ben nog c++-newbie
#include <iostream>
#include <iomanip>
using namespace std;
class Tijdsduur {
public:
Tijdsduur(int t);
Tijdsduur(int t, int m);
void print();
void maal(int t);
void erbij(const Tijdsduur& t);
void eraf(const Tijdsduur& t);
private:
int uur;
int min;
};// Definieer hier het ADT Tijdsduur
Tijdsduur::Tijdsduur(int t):uur(0),min(t){
}
Tijdsduur::Tijdsduur(int t, int m):uur(t),min(m){
}
void Tijdsduur::print(){
while (min<0) {
min+=60;
uur-=1;
}
while (min>59) {
min-=60;
uur+=1;
}
cout<<uur<<" uur en "<<min<<" minuten";
}
void Tijdsduur::maal(int t){
min=min+60*uur;
uur=0;
min=t*min;
while (min<0) {
min+=60;
uur-=1;
}
while (min>59) {
min-=60;
uur+=1;
}
}
void Tijdsduur::erbij(const Tijdsduur& t){
min=min+t.min;
uur=uur+t.uur;
while (min<0) {
min+=60;
uur-=1;
}
while (min>59) {
min-=60;
uur+=1;
}
}
void Tijdsduur::eraf(const Tijdsduur& t){
min=min-t.min;
uur=uur-t.uur;
while (min<0) {
min+=60;
uur-=1;
}
while (min>59) {
min-=60;
uur+=1;
}
}
int main() {
Tijdsduur t1(3,50); // t1 is 3 uur en 50 minuten
cout<<"t1 = "; t1.print(); cout<<endl;
const Tijdsduur kw(15); // kw is 15 minuten
cout<<"kw = "; kw.print(); cout<<endl;
t1.erbij(kw); // Tel kw bij t1 op
cout<<"t1 = "; t1.print(); cout<<endl;
Tijdsduur t2(t1); // t2 is een kopie van t1
t2.eraf(kw); // Trek kw van t2 af
cout<<"t2 = "; t2.print(); cout<<endl;
t2.maal(7); // Vermenigvuldig t2 met 7
cout<<"t2 = "; t2.print(); cout<<endl;
Tijdsduur t3(3,-122); // t3 is 3 uur minus 122 minuten
cout<<"t3 = "; t3.print(); cout<<endl;
Tijdsduur t4(3,122); // t4 is 3 uur plus 122 minuten
cout<<"t4 = "; t4.print(); cout<<endl;
cout<<"Druk op de return-toets."<<endl;
cin.get();
return 0;
}
error:
[user@localhost Documenten]$ gcc opdrach2a.cpp -o hoi
opdrach2a.cpp: In function ‘int main()’:
opdrach2a.cpp:82: error: passing ‘const Tijdsduur’ as ‘this’ argument of ‘void Tijdsduur::print()’ discards qualifiers
Alvast bedankt!