读书人

一个简单vector有关问题

发布时间: 2012-08-13 13:21:53 作者: rapoo

一个简单vector问题求助
输出老是不对,但是不知道错在那里,请各位指点:

C/C++ code
#main.cpp#include <cstdlib>#include<iostream>#include<vector>#include<time.h>#include "Animal.h"        using namespace std;int main(int argc, char** argv) {    int n = 10;    srand(time(0));    vector <Animal> a;    for (int i = 0; i < n; i++) {        int age = (rand() % 11);        int allele = (rand() % 2);        Animal ani(age, allele);        cout << "animal[" << i << "]: age = " << ani.age << "; allele =" << ani.allele << endl;        a.push_back(ani);    }    cout << endl;    for (vector<Animal>::size_type i = 0; i != a.size(); ++i) {        cout << "animal[" << i << "]: age = " << a[i].getAge() << "; allele =" << a[i].getAllele() << endl;    }    return 0;}


C/C++ code
#Animal.cpp#include "Animal.h"Animal::Animal() {}Animal::Animal(int age, int allele) {    Animal::age = age;    Animal::allele = allele;}Animal::Animal(const Animal& orig) {}Animal::~Animal() {}int Animal::getAge(){    return Animal::age;}int Animal::getAllele(){    return Animal::allele;}



C/C++ code
#Animal.h#ifndef ANIMAL_H#define    ANIMAL_Hclass Animal {public:    Animal();    Animal(int age, int allele);    Animal(const Animal& orig);    virtual ~Animal();    int getAge();    int getAllele();    int age; //年龄    int allele; private:};#endif    /* ANIMAL_H */



输出是:
animal[0]: age = 7; allele =0
animal[1]: age = 8; allele =1
animal[2]: age = 0; allele =1
animal[3]: age = 3; allele =0
animal[4]: age = 9; allele =0
animal[5]: age = 5; allele =0
animal[6]: age = 10; allele =1
animal[7]: age = 1; allele =1
animal[8]: age = 9; allele =0
animal[9]: age = 9; allele =1

animal[0]: age = 4001968; allele =1325412398
animal[1]: age = 2003788910; allele =1414422387
animal[2]: age = 977485128; allele =1736008540
animal[3]: age = 997091682; allele =1348221507
animal[4]: age = 1702127987; allele =1852400220
animal[5]: age = 1819436368; allele =1852400220
animal[6]: age = 1735357008; allele =544039282
animal[7]: age = 1447976051; allele =1095320649
animal[8]: age = 1836008224; allele =1769239920
animal[9]: age = 1802268527; allele =1130132585


显然有问题

[解决办法]
问题在这。
C/C++ code
Animal::Animal(const Animal& orig) {    age = orig.age;    allele = orig.allele;} 

读书人网 >C++

热点推荐