السلام عليكم ورحمة الله .
سؤالي : لدي برنامج بال c++ وفيه الكلاس المسماة Graph وفيه constructure لإعطاء القيم الإبتدائية.
وهذا الجزء الذي فيه تعريف الكلاس وال constructure :
class Graph
{
private:
Vertex VertexList[MAX];
int adjMat[MAX][MAX];
int nVerts;
public:
Graph() //this is the constructure
{
Vertex VertexList[MAX];
int adjMat[MAX][MAX];
nVerts=0;
for(int i=0;i<MAX;i++)
for(int j=0;j<MAX;j++)
adjMat[j]=0; //initialize the matrix
} //end constructureوباستخدام ال watch تأكدت ان المصفوفة adjMat[][] يتم تصفيرها داخل الconstructure .
وفي ال main أقوم في البداية بتعريف اوبجكت من نوع الكلاس .أي ان المصفوفة يتم تصفيرها وتأكدت من ذلك.
وفي أثناء البرنامج يتم بعض قيم هذه المصفوفة واستبدالها بقيم أخرى في حين تظل بعض القيم مصفرة كما هي (مع العلم انه من الضروري أن تظل القيم التي لم اغيرها مصفرة لأنني أحتاج لذلك).
وهناك member function وظيفتها هي عرض هذه المصفوفة .
وكتبتها كالتالي:
void displayMat(int j,int k)
{
cout<<adjMat[j][k];
cout<<" ";
}يتم مناداتها في هذا الجزء داخل ال main :
for(int j=0;j<num;j++) //to display adjMat.
{
cout<<endl;
for(int k=0;k<num;k++)
G.displayMat(j,k); //G is the object of class Graph.
}//end for loop]لكن المشكلة.. هي أنه يتم عرض القيم التي لم أقم بتغييرها بصورة خاطئة (أرقام عشوائية من الذاكرة بدلا من الأصفار).
لذلك أرجو منكم أن تخبروني ..هل هناك خطوة يجب أن أعملها ؟؟؟ وما هو الخطأ؟؟؟ لماذا لا تظهر القيم بأصفار؟؟؟
وسأكون شاكرة لكم جزيل الشكر ...وأرجو المساعدة لأن أشياء كثيرة في البرنامج متعلقة بهذه الخطوة.
وشكرا جزيلا مقدما.