[c++新手问题] redefinition of default argument 报错应该如何解决

2017-01-19 03:59:04 +08:00
 borischenc

header 的代码如下


#ifndef binary_tree_hpp
#define binary_tree_hpp

#include <iostream>
#include <string>
#include <stack>
#include <vector>
using namespace std;
struct Node{
    Node * left;
    Node * right;
    int degree;
    int key;
    int value;
};

Node * root;

Node* add(Node *);
Node* add(int, int);
extern string print_tree(stack<Node*, vector<Node*>> = stack<Node*, vector<Node*>>(*new vector<Node*>(1,root)));

#endif /* binary_tree_hpp */

出问题的在 external 这一行,在 cpp 文件中是这样的

string print_tree(stack<Node*, vector<Node*>> nodes = stack<Node*, vector<Node*>>(*new vector<Node*>(1,root))){
    cout<<nodes.top()<<endl<<root<<endl;
    return "";
}

编译的时候就提示 redefinition of default argument 。

不知应该如何解决,在 google 上搜索了一番还是没有得到明确的答案。望各路大神指出问题~

谢谢!

2792 次点击
所在节点    C
21 条回复
borischenc
2017-01-19 14:39:07 +08:00
@nifury 嗯嗯解决了!!谢谢!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX