السلام عليكم ورحمة الله
كيف حالكم إخواني؟
أقوم بكتابة هذا الكود ولكن يظهر خطأ عند تنفيذه، ولم أدر ما السبب، علماً أني أخذته من كتاب الإكسير:
- #include <iostream>
- using namespace std;
- class num
- {
- double *itsNum;
- public:
- num(){itsNum=new double;*itsNum=0;}
- num(int x){itsNum=new double;*itsNum=x;}
- num(float x){itsNum=new double;*itsNum=x;}
- num(long x){itsNum=new double;*itsNum=x;}
- num(const num &rhs);
- ~num(){delete itsNum;}
- GetitsNum() const {return *itsNum;}
- void SetitsNum(double x){itsNum=&x;}
- num operator ++();
- };
- num::num(const num &rhs)
- {
- itsNum=new double;
- *itsNum=rhs.GetitsNum();
- }
- num num::operator ++()
- {
- ++(*itsNum);
- double x=*itsNum;
- num temp;
- temp.SetitsNum(x);
- return temp;
- }
- void main()
- {
- int i=12;
- num first=i;
- ++first;
- cout<<first.GetitsNum()<<endl;
- num second= ++first;
- cout<<second.GetitsNum()<<endl;
- }
لا يوجد error قبل التنفيذ، ولكن عند تشغيل البرنامج يظهر لي رسالة كهذه:
Expression: _CrtIsValidHeapPointer(pUserData)
فما الحل؟
جزاكم الله خيراً