Hirdetés

Új hozzászólás Aktív témák

  • m.zmrzlina

    senior tag

    Van két db kétdimenziós tömböm. Az egyik int a másik char tipusú adatokat tárol. Ki szeretném iratni mindkettőt ugyanazzal a függvénnyel. Azt olvasom itt, hogy a template-ek pont ilyen feladatokra valók (ti. amikor kb ugyanaz a függvény csak más tipusú változókkal dolgozik)

    El is készítettem a templatet:

    template <class T>
    T print2DArray(const array<array<T,COL_MAX>, ROW_MAX> &a){

    cout<<" "; //column header
    for(int i=0;i<COL_MAX;i++){
    cout<<i<<" ";
    }
    cout<<endl;

    for(int i=0;i<ROW_MAX;i++){ //array body
    cout<<i<<" ";
    for (int j=0;j<COL_MAX;j++){
    cout<<a[i][j]<<" ";
    if(j==COL_MAX-1) cout<<i<<endl;
    }
    }

    cout<<" "; //column footer
    for(int i=0;i<COL_MAX;i++){
    cout<<i<<" ";
    }
    cout<<endl<<endl;

    return 0;
    }

    Aztán meghívom a main()-ból így:
    print2DArray<int>(intArray);

    meg igy:
    print2DArray<char>(charArray);

    A két tömb kiíródik, mindenki örül.
    Szeretném úgy módosítani a template-t, hogy <char>-ral való meghíváskor (de csak akkor) még egy további (int tipusú változót) is ki tudjak vele iratni. Hogyan lehetséges ez?

Új hozzászólás Aktív témák