01/10/2018, 15:49

Khai báo biến trong class: hàm khởi tạo mặc định

Cho mình hỏi tại sao mình khai báo như vậy chương trình lại chạy êm xuôi vậy:

#include <string>
#include <iostream>

class Employee
{
private:
    int m_id;
    std::string m_name;
public:
    Employee(int id=0,const std::string &name="John"):
        m_id(id),m_name(name)
    {
        std::cout<<"Employee "<<m_name<<" created.
";
    }

    Employee(const std::string &name): Employee(0,name){}
};

int main()
{
    Employee employee;
}

Mình nghĩ biến employee được khai báo không có đối số thì phải báo lỗi chứ, do compiler đã không tạo default constructor trong trường hợp này.

Bài liên quan
0