テンプレートを作成するには? まず、私はベースとしてブックを持っている:スタティックファクトリメソッドのテンプレートを作成するには?
class Book {
public:
Book() {}
~Book() {}
}
その後ComputerBook:
class ComputerBook: public Book {
public:
static ComputerBook* create() {
return new ComputerBook();
}
private:
ComputerBook():Book() {}
}
次に電話帳:だから
class PhoneBook1: public PhoneBook {
public:
static PhoneBook1* create() {
return new PhoneBook1();
}
private:
PhoneBook1():PhoneBook() {}
}
class PhoneBook2: public PhoneBook {
public:
static PhoneBook2* create() {
return new PhoneBook2();
}
private:
PhoneBook2():PhoneBook() {}
}
:
class PhoneBook: public Book {
public:
static PhoneBook* create() {
return new PhoneBook();
}
private:
PhoneBook():Book() {}
}
電話帳は、二つの遺産を持っていますマージできるComputerBookとPhoneBook1、PhoneBook2をテンプレートで1つにする?
'return new WhateverBook()'普通のコンストラクタを使用してみませんか?また、このタイプの問題のテンプレートは必要ありません。継承と仮想関数で十分です。 –
多分あなたは正しいです。私はそれにテンプレートを適用することが可能である場合だけ考えています。 – user8073659
私はそれをテンプレートに変換するのが不愉快です。これは、多くの点で矛盾し、間違っているため、このコードで何をしたいのかは不明です。テンプレートを適用すると状況が悪化します。 –