В этом коде конструктор вызывается дважды.
Как этого избежать?
Если я раскомментирую блок кода конструктора по умолчанию, тогда код не даст удовлетворительного результата..
И я также хочу условное создание экземпляра шаблона, поэтому я использовал указатель void.
#include<iostream.h>
template<class Type>
class Data{
public:
Type val;
Data(Type v){
cout<<"In Constructor Param";
val = v;
}
Data(){
// cout<<"In Constructor Defa"; uncommnet this line
}
~Data(){}
};
int main(){
Data<void *> obj;
obj = new Data<float>(31.34f);
cout<<*(float*)obj.val;
}
Вывод:
In Constructor Param
In Constructor Param
31.34
Спасибо за участие.