gpt4 book ai didi

c++ - 如何用 const 成员和继承来避免代码重复和浪费内存?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:26 24 4
gpt4 key购买 nike

我正在为形状实现一些类。有没有办法既避免代码重复又浪费内存?

基本上,我想在基类中有一个变量,它是一个常量,每个派生类只有一个拷贝(如静态成员),但每个派生类具有不同的值。

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

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

有没有办法做到这一点?

最佳答案

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

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; }
};

关于c++ - 如何用 const 成员和继承来避免代码重复和浪费内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8054793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com