我正在学习C++来自C#。在C#中,可以有以下类:
public abstract class BankAccount
{
private BankAccount() {} // prevent third-party subclassing.
private sealed class SavingsAccount : BankAccount { ... }
private sealed class ChequingAccount : BankAccount { ... }
public static BankAccount MakeSavingAccount() { ... }
public static BankAccount MakeChequingAccount() { ... }
}这样,消费者就不用担心BankAccount的类型,也不能嵌套自己的子类。
在C++中有类似的方法吗?
发布于 2014-10-09 23:45:14
这在C++中是直接的:
class BankAccount
{
private:
BankAccount(){}
class SavingsAccount;
class ChequingAccount;
public:
static BankAccount MakeSavingAccount();
static BankAccount MakeChequingAccount();
};
class BankAccount::SavingsAccount final : public BankAccount
{
};
class BankAccount::ChequingAccount final : public BankAccount
{
};
BankAccount BankAccount::MakeSavingAccount()
{
...
}
BankAccount BankAccount::MakeChequingAccount()
{
...
}https://stackoverflow.com/questions/26289608
复制相似问题