Không hiểu kết quả đoạn code

Kết quả ra 1231 nhưng em không hiểu lắm ai giải thích với ạ

#include <iostream>
using namespace std;

class CSomething
{
public:
CSomething() { cout << "2"; }
~CSomething() { cout << "2"; }
};

class CParent
{
public:
CParent() { cout << "1"; }
~CParent() { cout << "1"; }
};

class CChild : public CParent
{
public:
CChild() { cout << "3"; }
~CChild() { cout << "3"; }
protected:
CSomething m_DataMember;
};

int main(int argc, char** argv)
{
CParent* ptr = new CChild();
delete ptr;
return 0;
}

Bạn sửa lại cái phần in log, thay vì in số thì in tên hàm để biết chương trình chạy vào hàm nào.

#include <iostream>
using namespace std;

class CSomething
{
public:
	CSomething() { cout << __func__ << endl; }
	~CSomething() { cout << __func__ << endl; }
};

class CParent
{
public:
	CParent() { cout << __func__ << endl; }
	~CParent() { cout << __func__ << endl; }
};

class CChild : public CParent
{
public:
	CChild() { cout << __func__ << endl; }
	~CChild() { cout << __func__ << endl; }
protected:
	CSomething m_DataMember;
};

int main(int argc, char** argv)
{
	CParent* ptr = new CChild();
	delete ptr;
	return 0;
}
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?