以下に示すように、個別にリンクされたリストの実装があります。
ヘッダ
class SinglyLinkedList
{
struct Node
{
Node * _pNext;
int _data;
};
public:
Node * SomeFun(Node * ip1, Node * ip2);
// Some more methods here
};
このクラスのメソッドの1つを実装するとき
CPP
Node * SinglyLinkedList::SomeFun(Node * ip1, Node * ip2)
{
//Some code and return
}
私が理解していない奇妙な動作は、コンパイル時に、 SinglyLinkedList::Nodeとして指定しない限り、コンパイラが戻り値の型で型 "Node" を認識することを拒否すること です。しかし、関数の引数は明示的に指定しなくても同じ型として認識されてしまいます。どちらの場合も、Node は同じクラスで定義されているため、明示的に指定する必要はないと思いました。誰でもこれに光を当てることができますか?