c++类定义问题 默认参数
我刚定义一个类
public:
int info;
Node *next;
Node(int number,Node *ptr = 0);
};
Node::Node(int number,Node *ptr = 0)
{
info = number;
next = ptr;
}
出现了这个错误
1.cpp:11: error: default argument given for parameter 2 of ‘Node::Node(int, Node*)’
1.cpp:8: error: after previous specification in ‘Node::Node(int, Node*)’
但是通过内联函数定义则可以
Node(int number,Node *ptr = 0){info = number;next = ptr;}
这是为什么呢!?
/*--------------------------------------------------------*/
满意回答
2011-05-31 14:19
默认参数只能指定一次转自:http://zhidao.baidu.com/question/274209336.html
你在 Node(int number,Node *ptr = 0)中给出了ptr的默认参数
后面就不要再给出了
下面修改为如下就不会又问题。你的第二种方法也可以
Node::Node(int number,Node *ptr)
{
info = number;
next = ptr;
}
新手需要注意这点:
默认参数要写在后面,例如:Node(int number,Node *ptr = 0) 如果写成 Node(Node *ptr = 0,int number) 这是错误的。

浙公网安备 33010602011771号