Ich bin erst neu in C++ Und ich bin am Anfang ... Ich will nur etwas Hilfe ... würde es schätzen, wenn jemand erklären kann, wo ich falsch liege :
allererst meine Time.h Code:>> operator overloading ... C++
#ifndef TIME_H
#define TIME_H
#include<iostream>
using namespace std;
class time {
friend istream &operator>> (istream &, time);
private:
int hour;
int minute;
int second;
public:
time(int = 0, int = 0, int = 0);
void settime(int, int, int);
void sethour(int);
void setminute(int);
void setsecond(int);
};
#endif
Und jetzt Time.cpp:
#include<iostream>
#include"Time.h"
using namespace std;
using std::cout;
using std::cin;
time::time(int h, int m, int s)
{
settime(h, m, s);
}
void time::settime(int hr, int min, int sec)
{
sethour(hr);
setminute(min);
setsecond(sec);
}
void time::sethour(int h)
{
hour = (h >= 0 && h < 24) ? h : 0;
}
void time::setminute(int m)
{
minute = (m >= 0 && m < 60) ? m : 0;
}
void time::setsecond(int s)
{
second = (s >= 0 && s < 60) ? s : 0;
}
istream &operator>> (istream &in, time m)
{
in >> m.sethour >> m.setminute >> m.setsecond;
}
Und schließlich source.cpp:
#include<iostream>
#include"D:\headers\Time.h"
using namespace std;
void main()
{
time t;
cin >> t;
system("pause");
}
Aber wenn ich es kompiliere, gibt es mir einen Fehler:
1.Error C3867 'Zeit :: sethour': Nicht-Standard-Syntax; Verwenden Sie '&', um einen Zeiger auf das Element zu erstellen. Project33 D: \ headers \ Time.cpp 2.Error C2679 binary '>>': Kein Operator gefunden, der einen rechten Operanden vom Typ 'overloaded-function' (oder es gibt keine akzeptable Konvertierung) Project33 D: \ headers \ Time.cpp Kann mir jemand helfen ???
Wenn Sie ein Argument von Wert an eine Funktion, was zu diesem Argumente passiert? Was passiert, wenn Sie versuchen, das Argument zu ändern? Wird diese Änderung im Code widergespiegelt, der Ihre Funktion aufruft? –