|
|
Up |
  |
Author: AlexAlex
Date: Jan 16, 2007 07:47
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte einen von mir definierten Aufzählungstyp entweder von der
Standardeingabe oder aus einer externen Datei einlesen. Leider funktioniert
das nicht ohne weiteres. Unten habe ich das Problem kurz dargestellt.
#include
#include
#include
using namespace std;
enum TYP { eins, zwei, drei};
int main()
{
string input("datIn");
ifstream IN(input.c_str());
TYP t;
cin >> t; // Fehlermeldung
return 0;
}
|
| Show full article (0.72Kb) |
|
2 Comments |
|
  |
Author: Matthias MatkerMatthias Matker
Date: Jan 15, 2007 08:14
Hallo zusammen,
was ist nach C++-Standard die richtige Header-Datei?
#include
oder
#include
Danke
|
| |
|
no comments
|
|
  |
Author: Moritz UlrichMoritz Ulrich
Date: Jan 12, 2007 18:42
Hallo,
Ich komm direkt zur Sache weil es schon relativ spät ist:
Gibt es in C++ eine Funktion wie sleep() aus unistd.h welche X
Millisekunden wartet?
Hier in meinem Linuxsystem erwartet die Funktion nämlich Sekunden, ich
brauche allerdings eine welche Millisekunden warten kann.
Also z.B.
int sleep(unsigned int msec);
Und bitte keine Win-Api Funktionen, ich sitze an einem Linuxsystem und hab
vor daran zu bleiben.
MfG
Moritz Ulrich
|
| |
|
5 Comments |
|
  |
Author: Jürgen HerzJürgen Herz
Date: Jan 12, 2007 03:27
Hallo,
mit den Features der Sprache C++, d.h. wie Klassen deklariert werden, was
Zugriffschutz ist, wie eine Ableitung funktioniert und was Polymorphismus
ist usw. kenne ich mich mittlerweile aus. Allerdings fehlt mir das
Wissen/Verständnis wann was warum in der Praxis einzusetzen ist.
Also vielleicht etwas mehr Gewicht auf Konzepte als auf die Sprache, aber
bitte doch anhand von C++.
Vielleicht hat der eine oder andere von euch in dieser Hinsicht eine
Empfehlung für mich.
Grüße,
Jürgen
|
| |
|
22 Comments |
|
  |
Author: norbert.riedlinnorbert.riedlin
Date: Jan 12, 2007 03:25
Hallo zusammen,
ich habe das folgende Problem: ich habe eine template-Funktion mit
non-type Parameter:
template
void f();
Jetz möchte ich das template für bestimmte N explizit spezialisieren:
template<>
void f<0>() {}
template<>
void f<42>() {}
// etc
|
| Show full article (0.97Kb) |
|
2 Comments |
|
  |
Author: Heinz SaathoffHeinz Saathoff
Date: Jan 12, 2007 01:08
Moin,
Torsten Robitzki schrieb...
> Der vom Compiler erzeugte Zuweisungsoperator der Elemente funktioniert
> nicht, da die Referenzen nicht zugewiesen werden können. Entweder Du
> schwenkst auf Zeiger um, oder definierst den Zuweisungsoperator selber.
Könnte man überhaupt eine Rferenz 'verbiegen'? Also so etwas:
#include
using namespace std;
struct FOO {
FOO(int &val) : x(val) {}
FOO &operator=(const FOO &rhs) {
// ??? x=rhs.x, aber nicht als Value
return *this;
}
void Set(int val) {x=val;}
int &x;
};
int i=1, j=2;
|
| Show full article (0.91Kb) |
|
10 Comments |
|
  |
Author: Boris GlaweBoris Glawe
Date: Jan 11, 2007 15:07
>
> Der vom Compiler erzeugte Zuweisungsoperator der Elemente funktioniert
> nicht, da die Referenzen nicht zugewiesen werden können. Entweder Du
> schwenkst auf Zeiger um, oder definierst den Zuweisungsoperator selber.
>
Ok, erst einmal an alle, die mir auch diese Antwort gegeben haben:
Vielen Dank!
Warum aber hat der Compiler ein Problem damit, eine Referenz zu
kopieren? Die Referenz in dem neu erzeugten Objekt soll einfach auf das
gleiche Objekt verweisen, wie auch in der Klasse von der kopiert wurde!?
Ich kann doch sonst auch jederzeit etwas schreiben wie
string x = "hallo";
string& x_ref1 = x;
string& x_ref2 = x_ref1;
!??
Viele Grüße Boris
|
| |
|
2 Comments |
|
  |
Author: Alexander MüllerAlexander Müller
Date: Jan 11, 2007 14:07
Hallo!
Anscheinend (eigentlich ja nichts neues) gibt es in Visual C++ 6 hier einen
Bug:
template
void Test(A a1)
{
class T
{
T() {}
A a2;
};
};
Im Hauptprogramm rufe ich z.B. Test(5) auf.
Bei diesem Code erhalte ich einen Internen Compiler-Fehler (1001, msc1.cpp
Zeile 1794).
(Wenn ich den Konstruktor weglasse, dann compiliert er anstandslos.)
Daher habe ich eine globale Template-Klasse für T eingeführt (für jedes
Funktionstemplate
brauche ich eine passende Klasse).
|
| Show full article (0.72Kb) |
|
2 Comments |
|
  |
Author: Stefan ReutherStefan Reuther
Date: Jan 5, 2007 05:33
Jürgen Herz wrote:
> int& func()
> {
> int z = 17;
> return z;
> }
> und
> int mz = func();
> bzw.
> int& mz = func();
>
> In ersterem Fall enthält aber mz immerhin 17, in letzterem Blödsinn.
> In Perl wird ein out-of-scope-Objekt erst gelöscht wenn es keine Referenz
> mehr darauf gibt. In C++ dürfte es anders sein (ja/nein?),
Ja, in Perl werden effektiv alle Objekte über das Äquivalent eines
boost::scoped_ptr verwaltet.
> also auch verständlich wenn die Sache schiefgeht.
> Ist es dann nur Zufall bzw. compilerabhängig wenn mz im ersten Fall den
> korrekten Wert enthält?
|
| Show full article (1.58Kb) |
|
no comments
|
|
  |
Author: Bernhard BergerBernhard Berger
Date: Jan 5, 2007 05:33
Moin
> [zitierter Text ausgeblendet]
>
> int& func()
> {
> int z = 17;
> return z;
>> [zitierter Text ausgeblendet]
>
> und
> int mz = func();
> bzw.
> int& mz = func();
>
> meckert gcc in beiden Fällen zwar "warning: reference to local variable `z'
> returned".
Sollte mich auch wundern, wenn er es einmal nicht tut ;-)
> In ersterem Fall enthält aber mz immerhin 17, in letzterem Blödsinn.
> In Perl wird ein out-of-scope-Objekt erst gelöscht wenn es keine Referenz
> mehr darauf gibt. In C++ dürfte es anders sein (ja/nein...
|
| Show full article (1.63Kb) |
|
1 Comment |
|
|
|
|
|
|