jeudi 23 avril 2015

Changing cout with return [on hold]

I'm learning object programming in C++ .
Here is mine .h file:

#include <iostream>
#include <string>

using namespace std;

class Hokejist {
private:
    int StDres,StGol,StPodaj;
    string Ime;
public:
    Hokejist(); // default constructor
    Hokejist(const Hokejist& x); //copy constructor
    Hokejist(int xy, string x); // constructor
    Hokejist(string x,int a,int b, int c):Ime(x),StDres(a),StGol(b),StPodaj(c){} // constructor
    ~Hokejist(); // descructor
    void setDres(int x);
    void setGol(int x);
    void setPodaj(int x);
    void setIme(string x);
    int getDres()const;
    int getGol()const;
    int getPodaj()const;
    string getIme()const;
    int getSteviloTock();
    void izpis();
    string boljsi(Hokejist x);


};

here is my .cpp file:

#include <iostream>
#include <string>
#include "Hokej.h"

using namespace std;

Hokejist::Hokejist(){
    StDres=0;
    StGol=0;
    StPodaj=0;
    Ime.clear();
}

Hokejist::Hokejist(const Hokejist& x){
    StDres=x.StDres;
    StGol=x.StGol;
    StPodaj=x.StPodaj;
}

Hokejist::Hokejist(int xy, string x){
    StDres=StGol=StPodaj=xy;
    Ime=x;
}

Hokejist::~Hokejist(){

}

void Hokejist::setDres(int x){
    StDres=x;
}

void Hokejist::setGol(int x){
    StGol=x;
}

void Hokejist::setPodaj(int x){
    StPodaj=x;
}

void Hokejist::setIme(string x){
    Ime=x;
}

int Hokejist::getDres()const{
    return StDres;
}

int Hokejist::getGol()const{
    return StGol;
}

int Hokejist::getPodaj()const{
    return StPodaj;
}

string Hokejist::getIme()const{
    return Ime;
}

int Hokejist::getSteviloTock(){
    return (StGol+StPodaj);
}

void Hokejist::izpis(){
    cout<<"Ime hokejista: "<<Ime<<endl;
    cout<<"Stevilka dresa: "<<StDres<<endl;
    cout<<"Stevilo golov: "<<StGol<<endl;
    cout<<"Stevilo podaj: "<<StPodaj<<endl;

}

string Hokejist::boljsi(Hokejist x){
    if(this->getSteviloTock()>x.getSteviloTock()){
        return this->getIme();
    }
    else{
        return x.getIme();
    }
}

and here is my main program:

#include <iostream>
#include <cstdlib>
#include <string>
#include "Hokej.h"

using namespace std;

template<typename T>
void izpisNaj(T a, T b) {
    if (a > b) {
        cout<<a;
    } else {
        cout<<b;
    }
}

void izpisNaj(string x, string y) {
    if(x.size()>y.size()){
        cout<<x;
    }
    else {
        cout<<y;
    }
}

void izpisNaj(Hokejist x,Hokejist y){
    if(x.getSteviloTock()>y.getSteviloTock()){
        cout<<x.getIme()<<" "<<x.getDres();
    }
    else
    {
        cout<<y.getIme()<<" "<<y.getDres();
    }
}


int main() {

    string a= "aba"; string b= "a";

    Hokejist c("Kopitar",11,7,7); Hokejist d("Mursak",39,5,1);

    izpisNaj(12,35);  // writes 35
    cout<<endl;
    izpisNaj(13.5,3.5);  // writes 13.5
    cout<<endl;
    izpisNaj(b,a);    // writes aba
    cout<<endl;
    izpisNaj(c,d);    // writes Kopitar 11
    return 0;
}


Now I need to change cout in functions with return and this is where I get problems, I don't know how to change cout to return and make it work with this function:

void izpisNaj(Hokejist x,Hokejist y){
    if(x.getSteviloTock()>y.getSteviloTock()){
        cout<<x.getIme()<<" "<<x.getDres();
    }
    else
    {
        cout<<y.getIme()<<" "<<y.getDres();
    }
}
**NOW I NEED TO CHANGE THIS FUNCTION TO:**
template<>
    Hokejist izpisNaj(Hokejist x,Hokejist y){
        if(x.getSteviloTock()>y.getSteviloTock()){
           // needs to be return
        }
        else
        {
        // needs to be return
        }
    }


Aucun commentaire:

Enregistrer un commentaire