相关疑难解决方法(0)

静态字段是否继承?

当静态成员被继承时,它们对于整个层次结构是静态的,还是仅对该类是静态的,即:

class SomeClass
{
public:
    SomeClass(){total++;}
    static int total;
};

class SomeDerivedClass: public SomeClass
{
public:
    SomeDerivedClass(){total++;}
};

int main()
{
    SomeClass A;
    SomeClass B;
    SomeDerivedClass C;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在所有三个实例中总共为3,或者它是2 SomeClass和1为1 SomeDerivedClass

c++ inheritance static

96
推荐指数
4
解决办法
5万
查看次数

如何在C#中执行"静态重载const"?

我正在用C#创建一个游戏.每个级别由几个瓷砖组成.每块瓷砖都是某种类型,例如草地板,木墙等.

理想情况下,我希望有一个基类"Tile"并从中继承为每种类型的tile创建类.我想让tile的属性成为子类的某种static/const/etc成员,因为每种类型的tile都只具有相同的属性.即我不希望100 Tiles具有所有具有相同值的属性,这看起来效率相当低.

问题是你不能在C#中做到这一点.有没有办法达到我想要的?

我的另一个想法是将它全部分成树,一个只有表示实例的类"Tile"和另一个"TileType",我从中为每种类型实例化一个对象,并可能通过某种"TileTypeCollection"访问它们.这感觉很奇怪,我宁愿以第一种方式去做.

在处理这种情况时是否有任何一般指导原则?

c# polymorphism

7
推荐指数
1
解决办法
542
查看次数

标签 统计

c# ×1

c++ ×1

inheritance ×1

polymorphism ×1

static ×1