Class B;
B *b = new B(); // default constructor
B *b1 = new B(10); // constructor which takes an argument B(int x)
Однако, если мы хотим написать пользовательскую версию new
, синтаксис следующий
Class B
{
/*...*/
static void* operator new(size_t size);
}
Как оператор new B()
преобразуется в вызов функции для
operator new(sizeof(B))
?
И как он отслеживает, какой конструктор вызывать, то есть как он различает new B()
и new B(int x)
?
Реализован ли new
как макрос в C++?