Castro Postado Junho 12, 2011 Denunciar Share Postado Junho 12, 2011 :( Estou precisando de exemplos, o mais simples possível,dos seguintes itens:1-sobrecarga de operadores inserção e extração de fluxo;2-Sobrecarga de operador unario;3-Sobrecarga de operador binário.Um exemplo de cada e funcionais. Pesquisei na Internet, mas só achei material jogado e complicados.Pode ser com função amiga, quando aplicavelObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 FelipeFM Postado Junho 16, 2011 Denunciar Share Postado Junho 16, 2011 (editado) Cara,Eu tenho um exemplo aqui mas não é tão simples para iniciantes. Ele tem classe e função friend, por isso acho que não são todas as pessoas que vão entender.#include <iostream> #include <ctime> using namespace std; #include <iomanip> using std::setw; class PhoneNumber{ friend ostream &operator<<(ostream &, const PhoneNumber &); friend istream &operator>>(istream &, PhoneNumber &); private: char areaCode[4]; //codigo de area com 3 digitos e caractere nulo char exchange[5]; //numero central com 3 digitos e nulo char line[5]; //numero da linha com 4 digitos e nulo }; /*Operador de insercao em stream sobrecarregado(não pode ser uma funcao membro se quisermo invoca-la com cout << somePhoneNumber;). */ ostream &operator<<(ostream &output, const PhoneNumber &num) { output << "(" << num.areaCode << ") " << num.exchange << "-" << num.line; return output; // possibilita cout << a << b << c; } istream &operator>>(istream &input, PhoneNumber &num) { input.ignore(); // salta ( input >> setw(4) >> num.areaCode; //le codigo de area input.ignore(2); //salta ) e espaco input >> setw(5) >> num.exchange; //le numero da central input.ignore(); //salta hifen input >> setw(5) >> num.line; //le numero da linha return input; // possibilita cin >> a >> b >> c } int main () { PhoneNumber phone; cout << "Digite numero do telefone no formato (123) 3456-7890:\n"; // cin >> invoca a funcao operator fazendo a chamada operator >>(cin, phone). cin >> phone; //cout << phone invoca a funcao operator fazendo a chamada operator<<(cout, phone). cout << "O numero de telefone digitado foi: " << phone << endl; system("PAUSE"); return 0; } Editado Junho 16, 2011 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Castro Postado Junho 18, 2011 Autor Denunciar Share Postado Junho 18, 2011 (editado) :( Se não me engano, o exemplo que você deu é do livro do Deitel, acertei ? O livro é bom, mas os exemplos dele neste tema, são complexos. O livro do Hebert Schildt - C++ guia para iniciantes - neste tema não dá nem para começar o entendimento.Consegui este exemplo, mas está dando alguns problemas #include <iostream> using namespace std; class MinhaString {public: //MinhaString ( ) { } MinhaString (const char* s = ""); ~MinhaString ( ); const char* getString ( ); // Sobre carga de operadores void operator = (const char* s); bool operator == (const MinhaString s); private: void setString ( const char* s ); private: int tamanho; char* pStr; }; void MinhaString::setString ( const char* s ) { pStr = new char [ tamanho + 1 ]; strcpy ( pStr, s ); } const char* MinhaString::getString ( ) { return pStr; } void MinhaString::operator = (const char* s) { //. . . } bool MinhaString::operator == (const MinhaString s ) { char* aux = new char [ strlen (s.getString()) + 1 ]; strcpy ( aux, s.getString() ); // if ( 0 == strcmp ( sPtr, s.getString () ) ) if ( 0 == strcmp ( pStr, aux ) ) { return true; } else { return false; } } int main() { }Poderiam consertar ? não sei o que fazer ?Erros:D:\Teste\sobrecarga_Operadores_III.cpp In member function `bool MinhaString:perator==(MinhaString)':35 D:\Teste\sobrecarga_Operadores_III.cpp passing `const MinhaString' as `this' argument of `const char* MinhaString::getString()' discards qualifiers36 D:\Teste\sobrecarga_Operadores_III.cpp passing `const MinhaString' as `this' argument of `const char* MinhaString::getString()' discards qualifiersObrigado Editado Junho 23, 2011 por Castro Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Castro
:(
Estou precisando de exemplos, o mais simples possível,dos seguintes itens:
1-sobrecarga de operadores inserção e extração de fluxo;
2-Sobrecarga de operador unario;
3-Sobrecarga de operador binário.
Um exemplo de cada e funcionais. Pesquisei na Internet, mas só achei material jogado e complicados.
Pode ser com função amiga, quando aplicavel
Obrigado
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.