c OOP设计 – 将数据成员传递给其他类 – 这是否合理? [等候接
我还有一个问题,希望能够总结我的想法.
假设我有以下3个类: 班级球员: class Player { private: int positionX,positionY; public: void move(Board& b) { // player changes its position on the board(move) b.removeCharFromBoard(positionX,positionY); positionX++; positionY++; // 'P' indicates a Player in the Board.... b.insertCharToBoard(positionX,positionY,'P'); } }; 班主任: class Board { private: // BOARD_C and BOARD_R are both "#define ..." for some integer number. char board[BOARD_C][BOARD_R]; }; class GameEngine: class GameEngine { private: Board* board; public: void playTurn(const Player& p) { p.move(board); } }; 你认为GameBoard的playTurn函数会用参数“board”调用Player的移动功能似乎是合理的吗? 谢谢你们, 解决方法
是的,在这种情况下它似乎是合理的(在这种情况下,“我的意思是”考虑我可以猜测你的GameEngine和Board类的语义以及它们的关联/聚合关系的性质“):
>而是使用智能指针而不是原始指针来保存GameEngine中的Board对象.在这种情况下,unique_ptr可能就是你想要的,因为所有其他别名似乎只是观察者,并且board对象的生命周期绑定到GameEngine对象的生命周期.但是,如果需要共享所有权,请选择shared_ptr.只是尽量不要使用原始指针,新指针和删除指针,因为它们会导致错误的代码; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |