如何在另一个类中使用类的指针对象

时间:2013-11-25 16:58:18

标签: c++ class pointers

这是我在c ++中的Cell.cpp类:

#include "Cell.h"
Cell::Cell () {
alive = true ;
}
void Cell::setAlive (bool b) {
    Cell::alive = b ;
}

bool Cell::isAlive () {
return Cell::alive ;
}

这是我的World.cpp类:

    #include "World.h"
#include "Cell.h"
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std ;
    World::World (int l , int c ) : lines (l) , columns(c) , rep () {};
    World::World (int l , int c , bool ring) : lines (l) , columns(c) , ring (ring) ,rep() {};
    World::~World() {};

        int World::getLines () {
            return lines;
        }
        int World::getColumns () {
            return columns ;
        }
        void World::genarateWorld () {

            srand (time(0));
                rep[1][1].Cell::setAlive(true);


            }
        }

        int World::nbAliveNeighbor (int i , int j ) {
            int counter=0 ;

            return counter ;
        }
        int World::nbAliveNeighborRing (int i , int j ) {
            int counter=0 ;

            return counter ;
        }
        void World::nextGenarate () {

        }
        void World::print (){
            using namespace std ;
            for (int i = 0 ; i < 5; i ++){
                for (int j = 0 ; j < 5 ; j++) {
                    if (rep [i][j].Cell::isAlive ())
                        my [i][j]='*';
                    else
                        my [i][j]='-';
                }

                for (int i = 0 ; i < 5; i ++){
                    for (int j = 0 ; j < 5 ; j++) {
                        cout << my[i][j] << "\t" ;
                        }
                    cout <<endl ;
            }
        }
        }

这是我的主要内容:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include "Cell.h"
#include "World.h"
using namespace std ;

int main (){

    srand (time(0));
    World my (5,5);

    my.genarateWorld();

//  my.print();
    return 0 ;
}

在我的World.cpp中的void world :: genarateWorld()rep [1] [1] .Cell :: setAlive(true);有错误 我不知道如何初始化代表! 请帮帮我

这是Cell.h

#ifndef CELL_H_
#define CELL_H_

class Cell {
private:
    bool alive ;

public:
    Cell () ;
    void setAlive (bool b) ;
    bool isAlive () ;

};



#endif 

这是World.h

#ifndef WORLD_H_
#define WORLD_H_

#include "Cell.h"

class World {
private :
    bool ring ;
    int lines , columns ;
    Cell **rep ;
    char my [5][5];

public:
    World (int l , int c );
    World (int l , int c , bool ring);
    ~World() ;
    int getLines () ;
    int getColumns () ;
    void genarateWorld () ;
    int nbAliveNeighbor (int i , int j ) ;
    int nbAliveNeighborRing (int i , int j ) ;
    void nextGenarate () ;
    void print ();
};




#endif /* WORLD_H_ */

1 个答案:

答案 0 :(得分:1)

您将Cell::添加到不需要的各种地方,并在一个地方出现错误

rep[1][1].setAlive(true);

不是

rep[1][1].Cell::setAlive(true);

bool Cell::isAlive () {
    return alive ;
}

bool Cell::isAlive () {
    return Cell::alive ;
}

void Cell::setAlive (bool b) {
    alive = b ;
}

void Cell::setAlive (bool b) {
    Cell::alive = b ;
}