首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免代码重复和使用常量成员和继承浪费内存?

如何避免代码重复和使用常量成员和继承浪费内存?
EN

Stack Overflow用户
提问于 2011-11-09 01:44:39
回答 2查看 194关注 0票数 2

我正在为shapes实现一些类。有没有办法避免代码重复,同时又浪费内存?

基本上,我希望基类中的变量是一个常量,并且每个派生类(如静态成员)只有一个副本,但每个派生类具有不同的值。

例如,我想定义作用于派生类的惯性张量的函数;对于每个形状,惯性张量是一个常量,所以我不希望每个实例都有一个相同常量的副本。

然而,不是声明相同的变量并为每个派生类定义相同的函数,我想在基类中声明一个变量,并在基类中也有一个泛型函数,比如将惯性张量从世界坐标更改为局部坐标,反之亦然。

有没有办法做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-09 01:50:03

在基类中使用纯虚函数,并在每个派生类中重写它以返回适当的值。这样,您只有一个常量副本,并且每个派生类都正确地定义了它。

代码语言:javascript
复制
class Base
{
public:
    virtual int get_constant0() const = 0;
};

class Derived0 : public Base
{
public:
    virtual int get_constant0() const { return 5; }
};

class Derived1 : public Base
{
public:
    virtual int get_constant0() const { return 42; }
};
票数 8
EN

Stack Overflow用户

发布于 2011-11-09 02:09:01

与您的要求无关,但与我认为您正在尝试实现的目标相关;我将开始查看现有的实现,看看其他库如何实现刚体类型之间的集成,如果只是为了了解而不是要做什么。

ODE library

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8054793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档