のデフォルト値として、私は次のようメンバプロパティメソッド
#ifndef BINARY_SEARCH_TREE_H
#define BINARY_SEARCH_TREE_H
struct Node
{
int data;
Node *left, *right;
Node(int data);
};
class BinarySearchTree
{
Node *head;
public:
BinarySearchTree();
void insert(int data);
void inorder(Node *cur = head);
};
#endif
のように見えるヘッダファイルをしましたし、それは
In file included from Binary_Search_Tree.cpp:2:0:
Binary_Search_Tree.h:17:28: error: invalid use of non-static data member ‘BinarySearchTree::head’
void inorder(Node *cur = head);
^
Binary_Search_Tree.h:13:9: note: declared here
Node *head;
注意を言う:私は、デフォルト値を提供していませんでした定義しながら、メソッド。私はそれが必要ではないと思う。
デフォルト値には静的または定数値のみが使用できますか?はいの場合はなぜですか? 他に何か間違っていますか?
Fyi、少なくともあなたが求める*振る舞いは、 'void inorder(){inorder(head);}の追加オーバーロードで簡単に実行できます。 }; ' – WhozCraig
これはできます。それでは、C++のデフォルト値の有用性は何ですか? pythonはオーバーロードをサポートしておらず、上記の場合は、デフォルト値を使用する2つのメソッドではなく、1つのメソッドでのみ行うことができます。 – Abhisek