class Dollar;
class Money
{
public:
Money(int amount):amount(amount){};
static Dollar dollar(int amount);
protected:
int amount;
};
class Dollar : public Money
{
public:
Dollar(int amount):Money(amount){}
//Dollar times(int value) const;
//bool operator==(const Dollar& dollar) const;
};
Dollar Money::dollar(int amount)
{
return Dollar(amount);
}
int main()
{
Dollar d = Money::dollar(5);
}
Y2xhc3MgRG9sbGFyOwoKY2xhc3MgTW9uZXkKewpwdWJsaWM6CiAgICBNb25leShpbnQgYW1vdW50KTphbW91bnQoYW1vdW50KXt9OwogICAgc3RhdGljIERvbGxhciBkb2xsYXIoaW50IGFtb3VudCk7CnByb3RlY3RlZDoKICAgIGludCBhbW91bnQ7Cn07CgpjbGFzcyBEb2xsYXIgOiBwdWJsaWMgTW9uZXkKewpwdWJsaWM6CiAgICBEb2xsYXIoaW50IGFtb3VudCk6TW9uZXkoYW1vdW50KXt9CiAgICAvL0RvbGxhciB0aW1lcyhpbnQgdmFsdWUpIGNvbnN0OwogICAgLy9ib29sIG9wZXJhdG9yPT0oY29uc3QgRG9sbGFyJiBkb2xsYXIpIGNvbnN0Owp9OwoKRG9sbGFyIE1vbmV5Ojpkb2xsYXIoaW50IGFtb3VudCkKewogICAgcmV0dXJuIERvbGxhcihhbW91bnQpOwp9CgppbnQgbWFpbigpCnsKICAgIERvbGxhciBkID0gTW9uZXk6OmRvbGxhcig1KTsKfQoK