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
默认参数只能指定一次
你在 Node(int number,Node *ptr = 0)中给出了ptr的默认参数
后面就不要再给出了

下面修改为如下就不会又问题。你的第二种方法也可以
Node::Node(int number,Node *ptr)
{
info = number;
next = ptr;
}
转自:http://zhidao.baidu.com/question/274209336.html
 
新手需要注意这点:
默认参数要写在后面,例如:Node(int number,Node *ptr = 0) 如果写成 Node(Node *ptr = 0,int number) 这是错误的。
posted @ 2013-02-17 14:25  stma  阅读(324)  评论(0)    收藏  举报