Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Push_back ja luokat

Putkalainen [19.03.2010 00:31:20]

#

#include <cstdlib>
#include <string>
#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

class Luokka {

 public:
    Luokka();
    Luokka( int luku1, int luku2 );
    Luokka lisaa( const Luokka& lisattava ) const;

 private:
    struct Lisattavat {
       int luku1;
       int luku2;
    };

    vector < Lisattavat > talle;
};


Luokka Luokka::lisaa( const Luokka& lisattava ) const {

   talle.push_back(lisattava);

   Luokka uusi;
   return uusi;
}

Miten saan tuon lisattava:n talle-vectoriin?

Antaa tälläista erroria:

no matching function for call to 'std::vector<Luokka::Lisattavat>::push_back(const Luokka&) const'
.../vector:132: note: candidates are: void std::vector<T>::push_back(const T&) [with T = Luokka::Lisattavat]

jmp [19.03.2010 02:11:45]

#

Yrität lisätä Luokka-tyyppistä oliota vektoriin, jonka alkioiden tyyppi on eri (Lisattavat). Lisäksi lisaa on const-funktio, joten sen ei pitäisi muuttaa jäsenmuuttujia, mutta se yrittää kuitenkin työntää vektoriin uuden olion.

Metabolix [19.03.2010 10:56:41]

#

Myöskään ei ole järkeä palauttaa kyseisestä funktiosta uutta Luokka-tyyppiä. Uusi Lisattava olisi ehkä ymmärrettävä, mutta ei siitäkään minusta erityistä hyötyä olisi. Jos kerrot, mitä on tarkoitus tehdä, voit saada hyviä neuvoja.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta