【发布时间】:2020-09-04 02:56:29
【问题描述】:
是否有可能定义一个变量作为构造函数中的默认参数?
#include <iostream>
class Foo
{
public:
Foo(int x) { num = x;}
void print(int y = num)
{
std::cout << y << std::endl;
}
private:
static int num;
};
int main()
{
Foo f(5);
f.print();
}
这编译但我得到链接错误LNK2001 unresolved external symbol "private: static int Foo::num" (?num@Foo@@0HA)
【问题讨论】:
-
那么,如果我理解正确的话是不可能的?
-
如果 num 不是静态的,你可以这样做。
-
@IlyaS 当 num 不是静态时我得到
a nonstatic member reference must be relative to a specific object
标签: c++ oop static-variables static-initialization default-arguments