কম্পিউটার টিউটোরিয়াল

C++-এ অনডিফাইনড রেফারেন্স / আনরেজলভড এক্সটার্নাল সিম্বল এরর কী?


নাম অনুযায়ী, একটি সিম্বল যা আপনি ডিক্লেয়ার করেছেন কিন্তু ডিফাইন করেননি। এটি অনেক কারণে হতে পারে। আসুন তিনটি সাধারণ কারণ দেখি:

  • আপনি ডিক্লেয়ার করা নামটি ডিফাইন করেননি। উদাহরণস্বরূপ, আপনি একটি ফাইল ফাংশন ডিক্লেয়ার করেছেন এবং কোথাও ব্যবহার করেছেন। কিন্তু এর ডেফিনিশন দেননি। কোড:

#include <iostream>
void foo();
int main() {
    foo(); // ডিক্লেয়ার্ড কিন্তু ডিফাইনড নয়
}
  • আপনি ডিফাইন করেছেন কিন্তু কোয়ালিফাইড নাম ব্যবহার করেননি। ধরুন আপনি একটি ক্লাস তৈরি করেছেন একটি মেথড সহ এবং সেটি ডিফাইন করেছেন কিন্তু স্কোপ রেজোলিউশন ব্যবহার করে সেই ফাংশনকে সেই ডেফিনিশনের সাথে লিংক করেননি এবং সেই ফাংশন কোথাও ব্যবহার করেছেন। উদাহরণস্বরূপ:

#include <iostream>
class A {
    void foo();
};
void foo() { } // এখানে A::foo হওয়া উচিত
int main() {
    A a;
    a.foo(); // ডিফাইনড নয়!
}
  • আপনি ডিপেন্ডেন্সি গুলো ভুল অর্ডারে ইনক্লুড করেছেন। লিংকার আপনার নির্দেশ করা অর্ডারে লিংক করার চেষ্টা করে। তাই যদি আপনি একটি মেথড এর ডেফিনিশনের আগে ব্যবহার করেন, তবে সম্ভবত এই এররটি দেবে।

এই এররের কারণবশ একটি এক্সহাস্টিভ তালিকা তৈরি করা সম্ভব নয়। তবে আপনি এই পোস্টটি রেফারেন্স হিসেবে দেখতে পারেন যা খুব ভালোভাবে সংকলিত কারণগুলো দিয়েছে: Stack Overflow পোস্ট


  1. C++-এ টাইপ কোয়ালিফায়ার কী?

  2. C++-এ ক্যারেক্টার লিটারেল কী?

  3. C++-এ বুলিয়ান লিটারেল কী?

  4. C++-এ স্ট্যান্ডার্ড লাইব্রেরি কী?