构造函数中定义的类函数的默认参数[duplicate]

问题描述 投票:2回答:1

是否有可能定义将在构造函数中用作默认参数的变量?

#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)

c++ oop static-variables static-initialization default-arguments
1个回答
1
投票

有可能,您只需要在类外声明/初始化静态变量:

© www.soinside.com 2019 - 2024. All rights reserved.