小编Blu*_*n93的帖子

在C++中,此方法是调用静态绑定还是动态绑定?

这是类定义:

class Shape { public:
    virtual void draw() = 0; ...
};
class Circle : public Shape {
    public:
        void draw() { ... }
... };
class Rectangle : public Shape { public:
    void draw() { ... } ...
};
class Square : public Rectangle {
    public:
        void draw() { ... }
... };
Run Code Online (Sandbox Code Playgroud)

这是客户端代码:

Square* sq = new Square; 
Rectangle* rect = new Rectangle; 
Shape* ptr_shape;
ptr_shape = sq;
ptr_shape->draw();
rect->draw();
Run Code Online (Sandbox Code Playgroud)

我正在读的一本书说最后一个语句是静态绑定:

在此输入图像描述

但是,该语句仍然看起来动态绑定到我,因为rect->draw应该由rect运行时"vtable"中的指针调用.

有没有人有关于rect->draw …

c++ virtual-functions class

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

如何将列表的值与其指数的幂相加

如何将列表的值与其索引的幂相加Python 3

例:

[3, 0, 2] = 3^1 + 0^2 + 2^3 = 11
Run Code Online (Sandbox Code Playgroud)

我们的想法是为列表中任何可能的非负数组合创建唯一索引.这样,我可以使用列表来计算某事物的索引.


编辑:当问题得到解答时,我才意识到该方法不会为列表中的任何非负整数组合创建唯一索引.为此,假设a是可能的整数的数量,并基于接受的答案,

sum(a ** i * j for i,j in enumerate(l, 0))
Run Code Online (Sandbox Code Playgroud)

这个想法是每个数字将使索引增加一个与其在列表中的位置成指数比例的量.假设a=4(来自03),上面的例子变得

[3, 0, 2] = 4^0*3 + 4^1*0 + 4^2^2 = 35
Run Code Online (Sandbox Code Playgroud)

指数范围从.04^3-1=63.

python list python-3.x

5
推荐指数
1
解决办法
126
查看次数

如何将密钥信息保留在 Git 存储库之外

我的存储库中有一些文件,其中一个包含一个秘密的 Adafruit 密钥。我想使用 Git 来存储我的存储库,但我不想发布密钥。

什么是保密的最佳方法,而不必每次提交和推送某些内容时都将其清空?

git secret-key

5
推荐指数
1
解决办法
3453
查看次数

标签 统计

c++ ×1

class ×1

git ×1

list ×1

python ×1

python-3.x ×1

secret-key ×1

virtual-functions ×1