c++ - Templated data types with derived classes -


let's have following:

class base  {   protected:     base() { } };  class : public base { };  class b : public base { }; 

now suppose template:

templatedclass<base> *generic = new templatedclass<a>(); 

it doesn't work, , believe understand why, i'd know if can equivalent. have several template specializations of form

typedef templatedclass<a> aspec; typedef templatedclass<b> bspec; typedef templatedclass<c> cspec; 

i have single variable type i'd defer until runtime, can dynamically assign like

if(condition1)   generic = new aspec(); else if(condition2)   generic = new bspec(); 

is there way go this? don't have ability change fact classes templated , not inheriting base class, or i'd that.

this not possible in c++. fact a derives base doesn't mean templatedclass<a> derives templatedclass<base>.

see stack overflow post alternatives: conversion stl vector of subclass vector of base class


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -