【发布时间】:2014-05-30 08:06:31
【问题描述】:
如果我们对静态成员变量使用默认参数,会有什么陷阱吗?像这样:
enum Index
{
INDEX_A = 0,
INDEX_B
};
class foo
{
public:
static void method1( int a, int b = INDEX_A);
};
编译器从不抱怨,但当涉及到静态时,我总是很谨慎。
【问题讨论】:
-
b不是int,你在说什么陷阱?如果您只是在学习,您的消息来源是否告诉过您任何有关陷阱的信息? -
静态方法是完全正常的。避免静态数据。
-
非常感谢您的回复。我正在学习 C++ 中的“静态”。我关心初始化的顺序。我了解到静态成员是在程序启动时定义的。我了解到,调用方法时默认参数是“评估的”。这是否意味着默认参数必须是某种“const”并在静态方法之前声明和定义?我的问题有意义吗?
-
在您给我们的示例中,您有 no 个静态成员。只有一个静态成员函数。没有静态数据成员。
标签: c++ static default-arguments