C++ 构造函数中定义的类函数的默认参数
是否有可能定义一个变量作为构造函数中的默认参数C++ 构造函数中定义的类函数的默认参数,c++,oop,static-variables,static-initialization,default-arguments,C++,Oop,Static Variables,Static Initialization,Default Arguments,是否有可能定义一个变量作为构造函数中的默认参数 #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
#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();
}
#包括
福班
{
公众:
Foo(intx){num=x;}
无效打印(整数y=num)
{
std::cout有可能,您只需在类外声明/初始化静态变量:
#包括
福班
{
//..
};
int Foo::num;//也相关:所以,如果我理解正确,这是不可能的?如果num不是静态的,你可以这样做。@IlyaS当num不是静态的时候,我得到一个非静态成员引用必须是相对于一个特定的对象的
是的,但这仍然是硬编码的,我希望num是用户defined@SzymonO,您只需声明/初始化它在类之外,不必使用该值,然后用户可以定义它,请参阅演示代码。哦,好的,我现在就知道了。非常感谢:)
#include <iostream>
class Foo
{
//..
};
int Foo::num; //<-- or 'int Foo::num = 0;'
int main()
{
//...
}