File tree 1 file changed +3
-4
lines changed
1 file changed +3
-4
lines changed Original file line number Diff line number Diff line change @@ -482,7 +482,7 @@ struct FilterInputerAdapter {
482
482
483
483
``` cpp
484
484
struct FilterStrategy {
485
- virtual bool shouldDrop (int value) = 0; // 返回 true 表示该值应该被丢弃
485
+ virtual bool shouldPass (int value) = 0; // 返回 true 表示该值应该被保留
486
486
};
487
487
488
488
struct FilterStrategyAbove : FilterStrategy { // 大于一定值(threshold)才能通过
@@ -725,7 +725,6 @@ void player(Gun *gun) {
725
725
726
726
player(new GunWithBullet<AK47Bullet >());
727
727
player(new GunWithBullet<MagicBullet >());
728
- };
729
728
```
730
729
731
730
这样就不必每次添加新子弹类型时,都得新建一个相应的枪类型了,进一步避免了代码重复。可见模板元编程完全可与传统面向对象强强联手。
@@ -1061,7 +1060,7 @@ struct Sprite {
1061
1060
virtual void draw(glm::vec3 position) = 0;
1062
1061
};
1063
1062
1064
- struct FireSprite {
1063
+ struct FireSprite : Sprite {
1065
1064
vector<char > fireTexture;
1066
1065
1067
1066
FireSprite() : fireTexture(loadTexture("fire.jpg")) {}
@@ -1071,7 +1070,7 @@ struct FireSprite {
1071
1070
}
1072
1071
};
1073
1072
1074
- struct IceSprite { // 假如寒冰弹需要两张贴图,也没问题!因为虚接口类允许子类有不同的成员,不同的结构体大小
1073
+ struct IceSprite : Sprite { // 假如寒冰弹需要两张贴图,也没问题!因为虚接口类允许子类有不同的成员,不同的结构体大小
1075
1074
vector<char > iceTexture1;
1076
1075
vector<char > iceTexture2;
1077
1076
You can’t perform that action at this time.
0 commit comments