Para fazer isso é necessário utilizar um ponteiro e eu não quero utilizar ponteiro ou smart pointer.
Como utilizar de forma correta a interface em c++, poderia chamar o dao ao invés do idao ou simplesmente não fazer ele implementar a interface? Qual seria a melhor solução para esses conceitos?
Pode ser que não tenha compreendido o conceito de programar para abstrações ou esteja tentando aprender c++ programando em outra linguagem no c++.
Tenho 97,64% de certeza de que polimorfismo em C++ depende de ponteiros, sendo assim acho que você não conseguiria fugir deles se quiser “programar para abstrações”.
Mas porque não quer utilizar ponteiros?
D
diegofesanto
Estou estudando c++ e vi em alguns lugares para evitar o máximo possível uso de ponteiros
Solucao aceita
wldomiciano1 like
Bom, não sei muita coisa e o pessoal daqui pode lhe dar conselhos melhores, mas tenho que dizer o seguinte:
Não leve isso tão a risca.
Ponteiros são parte essencial de C e C++ e é através deles que você consegue usar todo o potencial delas.
Por isso, ao invés de fugir deles, tente entender como funcionam de verdade.
O que vc deve ter visto é para evitar o uso indiscriminado deles, mas estude-os melhor e você vai começar a reconhecer as situações onde vc deve usá-los e onde deve encontrar outra alternativa.
Bons estudos.
D
diegofesanto1 like
Obrigado pelas dicas, vou continuar os estudos e aprender a utilizar os ponteiros e o polimorfismo.
rmendes08
Já tentou usar uma referência:
intmain(){idao&dao=*newdao();}
wldomiciano
Se ele fizer isso ele perde a capacidade de usar o delete