小编And*_*eas的帖子

学习面向对象的思维

我目前正在研究一种用C++编写的小型2D游戏引擎,但我现在正面临一个守护进程 - 我很擅长设计一个实际可行的"类系统".在我的脑海中有一个封锁,使我无法看到我应该在哪里使用课堂以及我不应该在哪里.我正在阅读一篇关于引擎设计的文章,它的目的是使用'State'类来管理不同游戏条目的状态(我使用的是int).它还表明游戏的所有对象(不是io /视频/声音等)都来自Renderable或NonRenderable类.这很聪明.我已经知道这是一种聪明的方式 - 我的意思是,Java中的每个对象都是基类Object吗?聪明,我知道!为什么我不那样做?我需要阅读什么才能真正融入这种心态?

另一个例子.我正在参加Ruby的夏季课程(非常简单),我们应该设计一个露营地点.简单!因此,露营地是一系列"地块",每个都有一个电量计,用于衡量客人消耗的电量.我的设计是三个类,一个用于露营 - 反​​过来使用Guest和Plot类的数组.我的老师建议我多上课.WTF(!)是我的第一个想法,在哪里,什么课程?在我看来,一切都是一个阶级 - 直到我意识到,也许规范应该是一个类?现在,仪表是Plot类中的整数.

我想学习如何为我的问题提出面向对象的解决方案 - 而不仅仅是如何让最明显的东西进入课堂!

提示/书籍/文章/博客?

我在CS学习了两年,并且多年来一直作为业余爱好进行编程!我只是被卡住了 - 这让我无法创建任何更大的软件!

oop

43
推荐指数
4
解决办法
2万
查看次数

C++运算符和参数

假设我有一个课程点:

class Point {
    int x, y;
public:
    Point& operator+=(const Point &p) { x=p.x; y=p.y; return *this; }
};
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样称呼它:

Point p1;
p1 += Point(10,10);
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,同时仍然有参考作为参数?

c++ operator-overloading

3
推荐指数
2
解决办法
428
查看次数

标签 统计

c++ ×1

oop ×1

operator-overloading ×1