sasan_66
کاربر تازه وارد
- تاریخ عضویت
- 18 جولای 2006
- نوشتهها
- 450
- لایکها
- 0
سلام
كد هاي زير رو در نظر بگيريد :
g فايل هدر و f فايل اصلي
g.h
f.cpp
حالا اگه بخواهم كد اجرايي تابع stack( سازنده) رو در فايل g.cpp بنويسم به اين شكل :
(البته كد اجرايي تابع stack رو از فايل g.h برداشتم)
چرا برنامه ارور ميده البته تا اونجايي كه من فهميدم ارور مربوط به لينك شدنه من هميشه اين كارو ميكنم يعني پروتو تايپ توابع كلاس رو توي يه فايل هدر و اجراي توابع رو توي فايل سي پلاس پلاس و خود برنامه ي اصلي رو هم توي فايل سي پلاس پلاس ديگه اي مينويسم
هر چي هست زير سر اين template هستش
كد هاي زير رو در نظر بگيريد :
g فايل هدر و f فايل اصلي
g.h
کد:
#ifndef G_H
#define G_H
template < class T >
class Stack {
public :
Stack( int );
~Stack()
{
delete [] stackPtr;
}
private :
int size;
int top;
T *stackPtr;
};
template< class T >
Stack< T >::Stack( int s )
{
size = s > 0 ? s : 10;
top = -1;
stackPtr = new T[ size ];
}
#endif
f.cpp
کد:
#include <conio.h>
#include "g.h"
int main()
{
Stack< double > s( 5 );
_getch();
return 0;
}
حالا اگه بخواهم كد اجرايي تابع stack( سازنده) رو در فايل g.cpp بنويسم به اين شكل :
کد:
#include "g.h"
template< class T >
Stack< T >::Stack( int s )
{
size = s > 0 ? s : 10;
top = -1;
stackPtr = new T[ size ];
}
(البته كد اجرايي تابع stack رو از فايل g.h برداشتم)
چرا برنامه ارور ميده البته تا اونجايي كه من فهميدم ارور مربوط به لينك شدنه من هميشه اين كارو ميكنم يعني پروتو تايپ توابع كلاس رو توي يه فايل هدر و اجراي توابع رو توي فايل سي پلاس پلاس و خود برنامه ي اصلي رو هم توي فايل سي پلاس پلاس ديگه اي مينويسم
هر چي هست زير سر اين template هستش