小编Sil*_*ane的帖子

Const函数调用非const,反之亦然(以避免重复)?

使用一个优于另一个是否有任何优势:

class Foo
{
public:
    const int& get() const
    {
        // stuff here
        return myInt;
    }

    int& get()
    {
        return const_cast<int&>(static_cast<const Foo*>(this)->get());
    }
};
Run Code Online (Sandbox Code Playgroud)

要么

class Foo
{
public:
    int& get()
    {
        // stuff here
        return myInt;
    }

    const int& get() const
    {
        return const_cast<Foo*>(this)->get();
    }
};
Run Code Online (Sandbox Code Playgroud)

我只使用了第一个,但我刚看到第二个用在某个地方,所以我很想知道.

注释// stuff here可能是一个非平凡的检查,如检索表的索引,以便返回表的成员的引用(例如:),myInt = myTable[myComputedIndex];所以我不能只是公开它.因此,表和任何成员都不是const.

c++ const function

12
推荐指数
2
解决办法
2654
查看次数

纯虚拟和覆盖功能(c ++)

我查看了互联网上的问题,但找不到任何答案,所以我在这里.

指定从纯虚拟派生的函数的覆盖是否正确:

class baseClass
{
    public:
        virtual void myFunction() = 0;
}

class derivedClass : public baseClass
{
    public:
        virtual void myFunction() override;
}
Run Code Online (Sandbox Code Playgroud)

它是否正确?

我的第二个问题是:我是否必须在derivedClass中为我的函数指定virtual,即使没有类将从我的派生类继承(它将是最终的)?

非常感谢您的回答!

c++ virtual inheritance overriding

6
推荐指数
1
解决办法
1580
查看次数

如何伪造在Z轴上移动的2D精灵?

我将确定我的问题,我有一个2D物体在2D世界(X,Y)中移动,我想在Z轴上伪造一个运动.所以我认为最好的方法是使用它的范围(宽度,高度)和位置.但是,确定尺寸(w,h)物体的新范围以及从相机向前移动1米(Z轴)的等式是什么?这样一个函数的参数是什么?

在此先感谢您的帮助.

math graphics

4
推荐指数
1
解决办法
2020
查看次数

标签 统计

c++ ×2

const ×1

function ×1

graphics ×1

inheritance ×1

math ×1

overriding ×1

virtual ×1