how to template the below code? 
First, I have a Book as base:

```
class Book {
public:
    Book() {}
    ~Book() {}
}

```

Then ComputerBook:

```
class ComputerBook: public Book {
public:
    static ComputerBook* create() {
        return new ComputerBook();
    } 
private:
    ComputerBook ():Book() {}
}

```

Then PhoneBook:

```
class PhoneBook: public Book {
public:
    static PhoneBook* create() {
        return new PhoneBook();
    } 
private:
    PhoneBook():Book() {}
}

```

PhoneBook has two inheritances:

```
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() {}
}

```

So that can merge ComputerBook and PhoneBook1, PhoneBook2 into one with template?