मान लें कि मेरे पास कुछ बेस क्लास ए है और दो व्युत्पन्न कक्षाएं बी और सी क्लास ए में कुछ विधि है जिसे f() कहा जाता है।क्या मैं बेस क्लास विधि में एक सशर्त ब्रेकपॉइंट सेट कर सकता हूं जो केवल तभी ट्रिगर करता है जब यह विशिष्ट व्युत्पन्न वर्ग का उदाहरण हो?
क्या विजुअल स्टूडियो में ए :: एफ() में सशर्त ब्रेकपॉइंट सेट करने का कोई तरीका है जो केवल तब ही हिट होगा जब मेरा 'यह' वास्तव में कक्षा सी का उदाहरण है?
उदाहरण
void A::f()
{
some code and a breakpoint
}
void foo(A* a)
{
a->f();
}
void bar()
{
A a;
B b;
C c;
foo(&a); // breakpoint isn't hit
foo(&b); // breakpoint isn't hit
foo(&c); // breakpoint is hit
}
के लिए मैं ब्रेकपाइंट की हालत में आभासी तालिका सूचक परीक्षण लेकिन वहाँ एक बेहतर (अधिक आसान) तरीका हो गया है द्वारा इसे प्राप्त करने में कामयाब रहे है।
अग्रिम धन्यवाद।
संपादित करें: टिप्पणियों में सुझाए गए स्रोत कोड को संशोधित करना एक ऐसा समाधान नहीं है जिसे मैं ढूंढ रहा हूं। इसे केवल वीसी ++ डीबगर के माध्यम से किया जाना है।
व्युत्पन्न कक्षा में विधि को ओवरराइड करने के लिए बस बेस क्लास को कॉल करें और अपना ब्रेकपॉइंट रखें? – AJG85
@ AJG85 - हाँ, लेकिन यह संभव है कि बाइनरी को संशोधित नहीं किया जा सके। fwiw मुझे नहीं लगता कि सशर्त बीपी इसे करने की अनुमति देते हैं। –
आह उस मामले में उत्तर "नहीं" – AJG85