subsub
پنج شنبه 30 اردیبهشت 1389, 22:00 عصر
سلام
فرض کنید یه کلاس LinkedList داریم که ساختار یا کلاس Node توش تعریف شده (یعنی کلاسهای متداخل)
فرض کنید توی این کلاس LinkedList یه تابع داریم با نام Find که خروجیاش از نوع *Node یا &Node هست.
وقتی میخوام بیرون از کلاس این تابع رو implemenet کنم، مشکلی نداره. اما وقتی کلاس حالت عمومی پیدا میکنه یعنی بالای کلاس LinkedList مینویسم template <class Type> خطا میگیره و برنامه اجرا نمیشه. مشکل چیه؟
کدی که میزنم مثل کد زیر هستش:
template <class Type>
LinkedList
{
Public:
Node* Find();
private:
struct Node
{
T data;
Node* next;
};
};
temlate <class Type>
LinkedList<Type>::Node* LinkedList<Type>::Find()
{
...
}
فرض کنید یه کلاس LinkedList داریم که ساختار یا کلاس Node توش تعریف شده (یعنی کلاسهای متداخل)
فرض کنید توی این کلاس LinkedList یه تابع داریم با نام Find که خروجیاش از نوع *Node یا &Node هست.
وقتی میخوام بیرون از کلاس این تابع رو implemenet کنم، مشکلی نداره. اما وقتی کلاس حالت عمومی پیدا میکنه یعنی بالای کلاس LinkedList مینویسم template <class Type> خطا میگیره و برنامه اجرا نمیشه. مشکل چیه؟
کدی که میزنم مثل کد زیر هستش:
template <class Type>
LinkedList
{
Public:
Node* Find();
private:
struct Node
{
T data;
Node* next;
};
};
temlate <class Type>
LinkedList<Type>::Node* LinkedList<Type>::Find()
{
...
}