/ 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
Operator overloading igen
Fra : PVI


Dato : 13-06-03 10:54

Hejsa,

Jeg har brug for noget hjælp her.

Givet en klasse abc, som skal behandle nogle data.

jeg vil gerne kunne "streame" data ind i klassen og har forsøgt at
overloade "<<" men kan ikke få det til at virke.

F.eks. vil jeg gerne kunne gøre følgende :

abc << "Dette er en tekst" << 123 << 12.4 << char_ptr;

Måden jeg har løst det på indtil videre er at lave en metode Add og
overloaded med de nødvendige typer.

som : abc->Add(1), abc->Add("Constant text") og abc->Add(char_ptr);

Men jeg synes det er pænere og nemmere at bruge klassen ved at streame data
ind.

Gode forslag modtages med kyshånd.

På forhånd tak.

Peter

 
 
Robert Larsen (13-06-2003)
Kommentar
Fra : Robert Larsen


Dato : 13-06-03 13:26

PVI wrote:
> Hejsa,
>
> Jeg har brug for noget hjælp her.
>
> Givet en klasse abc, som skal behandle nogle data.
>
> jeg vil gerne kunne "streame" data ind i klassen og har forsøgt at
> overloade "<<" men kan ikke få det til at virke.
>
> F.eks. vil jeg gerne kunne gøre følgende :
>
> abc << "Dette er en tekst" << 123 << 12.4 << char_ptr;
>
> Måden jeg har løst det på indtil videre er at lave en metode Add og
> overloaded med de nødvendige typer.
>
> som : abc->Add(1), abc->Add("Constant text") og abc->Add(char_ptr);
>
> Men jeg synes det er pænere og nemmere at bruge klassen ved at streame data
> ind.
>
> Gode forslag modtages med kyshånd.
>
> På forhånd tak.
>
> Peter

Måske sådan her:


#include <string>
#include <iostream>

using namespace std;

class abc
{
public:
abc & operator<<(string str)
{
//Fyld kode i her
cout << "string: " << str << endl;
return *this;
}
abc & operator<<(int number)
{
//Fyld kode i her
cout << "int: " << number << endl;
return *this;
}

abc & operator<<(char * str)
{
//Fyld kode i her
cout << "char array: " << str << endl;
return *this;
}
};

int main(int argc, char ** argv)
{
abc a;
a << "Hello, World!" << 5 << string("Goodbye");
return 0;
}


[rcl@sideshow rcl]$ ./test
char array: Hello, World!
int: 5
string: Goodbye
[rcl@sideshow rcl]$


PVI (13-06-2003)
Kommentar
Fra : PVI


Dato : 13-06-03 14:15

Tusind tusind tak for hjælpen.
>
> #include <string>
> #include <iostream>
>
> using namespace std;
>
> class abc
> {
> public:
> abc & operator<<(string str)
> {
> //Fyld kode i her
> cout << "string: " << str << endl;
> return *this;
> }
> abc & operator<<(int number)
> {
> //Fyld kode i her
> cout << "int: " << number << endl;
> return *this;
> }
>
> abc & operator<<(char * str)
> {
> //Fyld kode i her
> cout << "char array: " << str << endl;
> return *this;
> }
> };
>
> int main(int argc, char ** argv)
> {
> abc a;
> a << "Hello, World!" << 5 << string("Goodbye");
> return 0;
> }
>
>
> [rcl@sideshow rcl]$ ./test
> char array: Hello, World!
> int: 5
> string: Goodbye
> [rcl@sideshow rcl]$
>
>

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