Jump to content

Substituir funçao no metodo friend


Go to solution Solved by HappyHippyHippo,

Recommended Posts

Posted

Tenho esta funçao:

voidTabuleiro::Show(){

int i = 0, j;

cout << " Jogo do Galo\n";

for (i = 0; i < Nc; i++){

cout << " " << i + 1;

}

cout << "\n";

for (i = 0; i < Nl; i++){

cout << i + 1 << " ";

for (j = 0; j < Nc-1; j++){

cout << Matriz[i][j] << " | ";

}

cout << Matriz[Nc-1];

cout << "\n";

if (i < Nl - 1){

cout << " -------";

for (j = 0; j < Nc - 1; j++){

cout << "|-------";

}

cout<<"\n";

}

}

cout << "\n";

}

E este metodo friend

ostream & operator << (ostream &os, constTabuleirot)

{

os << t.Nc << "/" << t.Nl <<endl;

returnos;

}

istream & operator >> (istream &is, Tabuleiro &t)

{

cout << "Numero de colunas: ";

is >> t.Nc;

cout << "Numero de linhas: ";

is >> t.Nl;

returnis;

}

Como posso substituir a funçao Show pelo metodo friend de modo ao friend retornar Show?

  • Solution
Posted

primeiro, deverias alterar a assinatura da função show, e depois é só chamar-la na função "friend"

ostream& Tabuleiro::Show(ostream& os) const { // <-- olha o const para poder ser chamada
 // usar "os" em vez de "cout"
 // ...

 return os;
}

ostream & operator << (ostream &os, const Tabuleiro t)
{
 return t.show(os);
}
  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Posted
ostream& Tabuleiro::Show(ostream& os) const {
int i = 0, j;
os << " Jogo do Galo\n";
for (i = 0; i < Nc; i++){
os << " " << i + 1;
}
os << "\n";
for (i = 0; i < Nl; i++){
os << i + 1 << " ";
for (j = 0; j < Nc-1; j++){
os << Matriz[i][j] << " | ";
}
os << Matriz[Nc-1];
os << "\n";
if (i < Nl - 1){
os << " -------";
for (j = 0; j < Nc - 1; j++){
os << "|-------";
}
os<<"\n";
}
}
os << "\n";
}
return os
}
ostream & operator << (ostream &os, const Tabuleiro t)
{
return t.show(os);
}

O codigo ficaria assim entao?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.