5

C++ 中的私有虚函数是否有通用的命名约定?我见过诸如do_something(...),something_vfunc(...)等约定。C++ 项目中通常使用哪种约定?

4

4 回答 4

2

标准中使用的约定(例如在许多约定中std::numpunct)是do_something方法protected virtual,并且something是调用它的public非方法。virtual

于 2012-08-09T20:20:57.727 回答
1

我使用前缀dyn_。所以你可能会看到:

class t_type {
public:
    /* ... */
    void method() {
        this->dyn_method();
    }

private:
    virtual void dyn_method() const = 0;
};

class t_subtype : public t_type {
public:
    /* ... */
private:
    virtual void dyn_method() const {
        ...
    }
};

至于一个常见的 - 我不确定。

于 2012-08-09T20:23:43.670 回答
1

我敢肯定,有很多约定。我倾向于使用尾随Impl_impl取决于方法名称其余部分的约定。所以根据需要ComputeFoo调用ComputeFooImpl

于 2012-08-09T20:27:06.777 回答
1

不同的团队和人员使用不同的标准。我个人是不要添加任何特殊的前缀或后缀。名称应该代表这个函数的作用。IDE 将帮助您查看它是私有的还是受保护的、虚拟的还是非虚拟的。是的,将虚函数设为私有或受保护是一个不错的选择,但如果你添加新函数只是为了遵循这个原则——三思而后行。

于 2012-08-09T21:39:06.970 回答