এর মানে কি?


92

আমার 2 টি ক্লাস রয়েছে:

class base {
    virtual void foo() {};
};

class derived : public base {
    void foo() { base::foo(); }
};

আমি একটি ভুল করেছি এবং base:foo();পরিবর্তে লিখেছি base::foo();। কোডটি সংকলন করে চালানো হয়েছিল, তবে সেগফ্ল্যাশ্ট।

আমি কীভাবে এটি গুগল করতে পারি এবং এটি কী তা আমি জানি না তবে আমি খুব আগ্রহী: এর অর্থ কী?

base:foo();

যদি এটি গুরুত্বপূর্ণ হয়:

class base : public QAbstractGraphicsShapeItem

32
এটি একটি লেবেল
ক্রিস

20
এটি এমন একটি ঘটনা যেখানে সতর্কবাণীগুলি চালু করা, এটি সরাসরি দেখতে সহায়তা করে ... warning: label 'base' defined but not used [-Wunused-label]... সম্ভবত আমাদের একটি প্রশ্ন পৃষ্ঠা জিজ্ঞাসা করতে হবে
শফিক ইয়াঘমোর

6
এটি স্ট্যাকের ওভারফ্লো দিয়ে শেষ হয়েছিল। কত উপযুক্ত!
লরেন্ট এলএ রিজ্জা

উত্তর:


125
void foo() { base:foo(); }

সমান:

void foo()
{
   base: // An unused label.
   foo(); // Calls the function again, resulting in infinite recursion.
}

অসীম পুনরাবৃত্তির কারণে, ফাংশন স্ট্যাকের ওভারফ্লো করে causes


4
হ্যাঁ, আমি foo()কল স্ট্যাকের অনেক কল দেখতে পেয়েছিলাম that ধন্যবাদ
রেলমিসাক

জিসিসি / বিড়ম্বনা ইত্যাদিতে এর জন্য কি সতর্কতা পাওয়া যায়?
সংবেদনহীনতা

10
@ সের্থি, আমি যখন ব্যবহার করি তখন আমি -Wallসতর্কতা বার্তাটি পাই
আর সাহু

10
@ সেরথি: আইআইআরসি ভিজ্যুয়াল স্টুডিওতে "এর জন্য সমস্ত নিয়ন্ত্রণের পথে পুনরাবৃত্তি" করার সতর্কতা রয়েছে।
এমসাল্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.