Он вызывает конструктор по умолчанию базового класса memory::SqlAlloc()
.
namespace memory {
class SqlAlloc
{
public:
SqlAlloc() {} // SqlAlloc's default constructor
};
}
//...
class base_list : public memory::SqlAlloc
{
public:
// base_list constructor
base_list(const base_list &tmp) : memory::SqlAlloc()
{
// The code after the ":" above and before the "{" brace
// is the initializer list
elements= tmp.elements;
first= tmp.first;
last= elements ? tmp.last : &first;
};
. Учитывайте следующее:
int main()
{
base_list bl; // instance of base_list called "bl" is declared.
}
Когда создается bl
, он вызывает конструкторbase_list
.Это приводит к запуску кода в списке инициализатора конструктора base_list
.Этот список инициализаторов имеет memory::SqlAlloc()
, который вызывает конструктор SqlAlloc
по умолчанию.Когда конструктор SqlAlloc
завершает работу, запускается конструктор base_list
.