নেই সি ++ বৈশিষ্ট অর্ডার উল্লেখ operator newএবং কন্সট্রাকটর Aমধ্যে new C(A())।
জি ++ অর্ডারটি A()-> new-> C()হতে দিন, তবে ঝাঁকুনি ++ হতে দিন new-> A()-> C()।
পার্থক্য কি অনির্দিষ্ট আচরণের কারণে ঘটে?
g ++: 7.4.0 ঝনঝন ++: 10.0.0
#include <iostream>
#include <cstdlib>
struct A {
A() {
std::cout << "call A()\n";
}
};
struct C {
C(A) {
std::cout << "call S()\n";
}
void *operator new(size_t s) {
std::cout << "call new()\n";
return malloc(s);
}
};
int main() {
void *p = new C(A());
}