Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Как сделать список классов?


Автор: Tema1 5.4.2013, 21:08
Не могу не как понять как сделать список классов.
Вылетает ошибка error C2664: void (const int &): невозможно преобразовать параметр 1 из "rational" в "const int &
понимаю почему (т.к класс не является const int &класс), но не пойму как надо...
вот часть программы
Код

#include<iostream>
#include<time.h>
#include<vector>
#include<algorithm> 
using namespace std;


#define N 100

class rational{
public:
    int x;
    int y;

    rational(){
        x = 0;
        y= 0;
        
    };
    rational(int g, int s){
        x=g; y=s;

    };
};

void prin(const int &x){
    cout << x << "\t";
}


void main(){
    srand((int)time(0));
    vector<rational>vek;
    vector<rational>::iterator h;
    for(int i = 0; i < 10; i++){
        rational k(rand()%20,rand()%20);
        vek.push_back(k);                                     // как быть вот тут?
    }
    for_each(vek.begin(),vek.end(),prin);
    getchar();
}

кто знает объясните?

Автор: Crafty 5.4.2013, 21:29
Проблема не в этом месте, а в 
Код

for_each(vek.begin(),vek.end(),prin);

а точнее в функции prin(const int &x), к-торая принимает int, вместо rational

Добавлено через 1 минуту и 39 секунд
Код

#include<iostream>
#include<time.h>
#include<vector>
#include<algorithm> 
using namespace std;
#define N 100
class rational{
public:
    int x;
    int y;
    rational(){
        x = 0;
        y= 0;
        
    };
    rational(int g, int s){
        x=g; y=s;
    };
};

void prin(const rational &x){
    cout << x.x << "\t";
}
int main(){
    srand((int)time(0));
    vector<rational> vek;
    vector<rational>::iterator h;
    for(int i = 0; i < 10; i++){
        rational k(rand()%20,rand()%20);
        vek.push_back(k);                                     // как быть вот тут?
    }
    for_each(vek.begin(),vek.end(),prin);
    getchar();
}

Автор: Tema1 5.4.2013, 21:36
О_О большое спасибо, а я все думал что там ошибка и ломал голову....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)