prog.cpp: In function ‘int main()’:
prog.cpp:75: error: cannot declare variable ‘b1’ to be of abstract type ‘B’
prog.cpp:40: note: because the following virtual functions are pure within ‘B’:
prog.cpp:28: note: virtual A* A::Clone() const
prog.cpp:75: error: cannot declare variable ‘b2’ to be of abstract type ‘B’
prog.cpp:40: note: since type ‘B’ has pure virtual functions
prog.cpp:95: error: cannot allocate an object of abstract type ‘B’
prog.cpp:40: note: since type ‘B’ has pure virtual functions
prog.cpp: In member function ‘T* Cloneable<T>::Clone() const [with T = B]’:
prog.cpp:84: instantiated from here
prog.cpp:8: error: cannot allocate an object of abstract type ‘B’
prog.cpp:40: note: since type ‘B’ has pure virtual functions
prog.cpp: In member function ‘T* Cloneable<T>::Clone() const [with T = A]’:
prog.cpp:99: instantiated from here
prog.cpp:8: error: cannot allocate an object of abstract type ‘A’
prog.cpp:18: note: because the following virtual functions are pure within ‘A’:
prog.cpp:28: note: virtual A* A::Clone() const