Đây là mã ...Tôi có thể gọi một phương thức với các đối số được yêu cầu trong C++. Làm thế nào mà?
#include "stdafx.h"
#include<iostream>
using namespace std;
class Base
{
public:
virtual void Display(bool b = false)
{
cout<<"Base"<<"\t"<<b<<endl;
}
};
class Derived : public Base
{
public:
virtual void Display(bool b) override
{
cout<<"Derived"<<"\t"<<b<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
Base* bp = new Base();
Derived* dp = new Derived();
bp->Display();
dp->Display(true);
bp = new Derived();
bp->Display();
cout<<"Done"<<endl;
return 0;
}
Khi Display()
phương pháp gọi là lần thứ hai sử dụng bp
, đáng ngạc nhiên nó nhấn phương pháp này trong Derived
lớp. trong lớp Derived
Tôi không chỉ định đối số mặc định. Nhưng nó đã lấy đối số lớp cơ sở mặc định. Làm sao?
Tôi đoán bạn có nghĩa là lần thứ ba (lần cuối cùng trong mã của bạn). – john
Có. Tôi cập nhật câu hỏi ngay bây giờ. Cảm ơn. –
Mang lại những kỷ niệm trở lại: http://www.gotw.ca/gotw/005.htm. –