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 上搜索了一番还是没有得到明确的答案。望各路大神指出问题~
谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.