相关疑难解决方法(0)

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案索引,它们是最有意义的顺序:

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ operator-overloading operators c++-faq

2074
推荐指数
8
解决办法
88万
查看次数

枚举C++中的枚举

在C++中,是否可以枚举枚举(运行时或编译时(首选))并为每次迭代调用函数/生成代码?

示例用例:

enum abc
{    
    start
    a,
    b,
    c,
    end
}    
for each (__enum__member__ in abc)
{    
    function_call(__enum__member__);    
}
Run Code Online (Sandbox Code Playgroud)

合理的重复:

c++ enums enumeration metaprogramming

38
推荐指数
2
解决办法
2万
查看次数

是否有一直使用static_cast <int>的替代方法?

我有一个调用的枚举StackID,在我的代码中,我需要static_castint很多 - 例如

StackID somestack;
int id = static_cast<int>(somestack);
Run Code Online (Sandbox Code Playgroud)

有没有一种替代方法可以一次又一次地进行这种演绎?我听说过"隐含的"转换 - 这是我可以在这里使用的东西吗?

(可能与这个问题有关)

c++

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

"没有'运算符++(int)'在枚举上声明为后缀'++'[-fpermissive]"

我得到了枚举

enum ProgramID
{
    A = 0,
    B = 1,
    C = 2,
    MIN_PROGRAM_ID = A,
    MAX_PROGRAM_ID = C,

} CurrentProgram;
Run Code Online (Sandbox Code Playgroud)

现在,我试图CurrentProgram像这样增加:CurrentProgram++,但编译器抱怨:no 'operator++(int)' declared for postfix '++' [-fpermissive].我认为有这样一个运算符增加"枚举",但如果没有,我如何获得其中一个值的后继?

c++ enums gcc avr operator-overloading

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