مشاكل المؤشر مع الحمولة الزائدة في C ++؟
-
22-07-2019 - |
سؤال
ومؤشرات تقديم بعض المشاكل خاصة لقرار الزائد.
ويقول على سبيل المثال،
void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
f(0);
}
ما هو الخطأ في الدعوة و (0)؟ كيف يمكنني إصلاح استدعاء دالة لو (0)؟
المحلول
وf((int*) 0)
أو f((char *) 0)
ولكن إذا وجدت نفسك تفعل هذا وأود أن نلقي نظرة أخرى على التصميم الخاص بك.
نصائح أخرى
وألقها، أو لا تستخدم على الإطلاق:
f((int*)0);
ما هو الخطأ في الدعوة و (0) هو قرار غير واضحة. كل من مهامكم طاقتها تأخذ مؤشر وهو في هذه الحالة لا يمكن حلها إلا عبر المدلى بها.
f((int*)0)
واعتمادا على ما نحاول القيام به هنا وهناك خيارات أخرى ليست غامضة.
لا تنتمي إلى StackOverflow