الشبكة العربية لمطوري الألعاب

  محمد النبكاوي مشاركة 1

أحاول التعامل مع الشجرة الوراثية (point- circle)
و لدى الصفين المذكورين تابع مشترك هو التابع (Print)
وذلك بإستخدام تعددية الاشكال ولكن المشكلة لدي أن المترجم يعطيني خطأ ربط
(unresolved external :LNK2001)
مع انني أدخلت التوابع الإفتراضية الأعضاء في كل من الصفين
ما المشكلة؟.

كنان فخر الدين

UndCOVer

خبير  Mohammad Khashashneh مشاركة 2

Sorry, But I think you should explain more about your problem. Post your Code
So we could understand better.

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع

  محمد النبكاوي مشاركة 3

ملفات الكود
http://www.isonly.net/~blue_cats/cgi-bin/upload/source/up3119.zip



كنان فخر الدين

UndCOVer

محترف مشرف عبد اللطيف حاجي علي مشاركة 4

آه... من أين أبدأ؟؟؟؟ ولكن قبل أن أبدأ: ما المترجم الذي تستخدمه؟ مهما يكن، فإنه رائع، فهو يقوم حقاً بعمل جبار بتجاوز كل أخطاء الـ syntax تلك...
أولاً أنت تغفل ضم (include) ملفات الـ Header في ملفات الـ source وعندما تتذكر ذلك تخطأ في اسم الملف (مثل Circle.h بدلاُ من Cirle.h... بغض النظر عن أخطاء اللغة)، ثم هناك الـ syntax الغريب على شاكلة:

Point::Point(int X, int Y)
	:Point(X, Y)		// Here
{}


ما الذي تحاول فعله؟ و كيف يترجم هذا الـ code معك؟
أيضاً عدم التطابق بين الـ Function declaration و الـ Function definition أو حتى عدم وجود الأول من الأساس...
أما بالنسبة للخطأ الذي ذكرته، فهو لم يظهر لي أبداً!!! على الأقل بعد تصحيح كل تلك الأخطاء

عبد اللطيف حاجي علي
مبرمج
In|Framez

  محمد النبكاوي مشاركة 5

عفواً أخي الكريم سوف أوضح لك عدة أمور
أولاً الملفات المرفقة كتبت على النوت باد وذلك لعدم توفر مترجم ++C على الكمبيوتر الذي اتصل بالإنترنت من خلاله وبناءً على ذلك قمت بكتابة الكود بإختصار شديد
أما عن فكرة الUSB فقد انعطبت من كثرة الإستعمال (الوحشي)
ثانياً- بالنسبة للكود الذي ذكرته فأعتذر عنه فهو خطئ فادح فعلاً وكما يقولون غلطة الشاطر بألف☺
ثالثاً-المترجم الذي أستخدمه هو مايكروسوفت visual C++ 6
وكما ذكرت المشكلة ليست بالمترجم انها بالنوت باد D:
كنان فخر الدين

UndCOVer

خبير  أحمد عبد الغني مشاركة 6

خذ الأمور ببساطة يا سيد عبدو...
الموضوع ببساطة يتمثل في كلمة الـ const المضافة إلى نهاية الإعلان عن Print في صنف الـ circle. أنا لا أعلم ما وظيفتها، لكن إزالتها تحل المشكلة حيث يتطابق الإعلانان تماماً في Point و Circle.

اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم

محترف مشرف عبد اللطيف حاجي علي مشاركة 7

التعليق على مشاركة أحمد عبد الغني في Nov 1, 2005 8:23 :

> خذ الأمور ببساطة يا سيد عبدو...
> الموضوع ببساطة يتمثل
> في كلمة الـ const المضافة إلى نهاية الإعلان عن Print
> في صنف الـ circle. أنا لا أعلم ما وظيفتها، لكن إزالتها
> تحل المشكلة حيث يتطابق الإعلانان تماماً في Point و
> Circle.

أنا لم أقل إن ذلك خطأ فادح أم لا، أنا قلت إنه خطأ فقط (سواءً كان بسيطاً أم لا)
على فكرة: الـ const بعد إعلان الـ function تخبر المترجم بأنه لن يتم تغيير إي من الـ members من الـ class (الذي ينضم إليه الـ function), و هي لعمري const عظيمة...

عبد اللطيف حاجي علي
مبرمج
In|Framez

خبير  أحمد عبد الغني مشاركة 8

جزيل الشكر للتوضيح!
إذن هي للتنظيم لا أكثر؟ هل لها دور آخر في الأداء مثلاً؟

اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم