私は C++ クラスを持っており、同じ名前を持つ (そして持つべき) 2 つの静的メソッドを宣言していますが、同じ名前ではないことは間違いありません。だから私はこれをしました:
#include <cstdio>
struct Cat;
class Cat {
public:
int age;
Cat * mother;
Cat * father;
Cat(){};
~Cat(){};
static Cat* walk_to_min(Cat* c);
static Cat* walk_to(Cat* c, int distance);
};
しかし、コンパイルしようとすると、G++ は次のように表示します。
cats.cpp:22: error: expected unqualified-id before ‘walk_to’
cats.cpp:22: error: expected ‘;’ before ‘walk_to’
しかし、たとえば、変更walk_to
するgogo
と機能します。したがって、これらのメソッドの命名に関係があると思います。
どうしたの?私が望むようにメソッドに名前を付けることができないのはなぜですか。BST_delete と BST_delete_min がある BST を想像してみてください。似たような名前のメソッドが必要になる場合があります。私に何ができる?
更新します。申し訳ありませんが、私は実際のコードを示していませんでした。これは実際のコードです:
#include <cstdio>
class BST {
public:
int key;
BST* leftChild;
BST* rightChild;
BST();
BST(int t) : key(t) {}
~BST(){};
void inOrder(BST* bstree);
void preOrder(BST* bstree);
void postOrder(BST* bstree);
static BST* delete_min(BST* root);
static BST* delete(BST* root, int value);
static BST* search(BST* element, int value);
};
ところで、私のメソッド delete_in と delete の両方の定義は空です:
BST* BST::delete_min(BST* root)
{
}
BST* BST::delete(BST* root, int value)
{
}
そしてエラー:
L2Q1-dunder-mifflin-cpp.cpp:21: error: expected unqualified-id before ‘delete’
L2Q1-dunder-mifflin-cpp.cpp:21: error: expected ‘;’ before ‘delete’
ありがとう