Bu sınıf UniqueElement başka yerde tanımlanan bir POD sınıftırGarip davranışlar 2010
#include <memory>
class ContainerUnique
{
public:
ContainerUnique(void);
~ContainerUnique(void);
private:
std::unique_ptr<UniqueElement> u;
};
yazmaya çalıştı. Şimdi böyle yapıcı vücudu tanımlayın:
ContainerUnique::ContainerUnique(void)
{
auto tmp = new UniqueElement(1);
this->u(tmp); // u is a unique_ptr<UniqueElement>. Should this call compile?
}
Ve istisnasız uyumludur. Programı çalıştırıyorum, ContainerUnique
yapıcısı çağrıldıktan sonra, u
bir boş gösterici içeriyor.
Bu amaçlanan davranış mı? Ve hangi unique_ptr yöntemini arıyorum?
Karşılaştığınız sorunlardan emin değilsiniz. Ancak, üye değişkenini u, kurucunun initialaztrion listesinde başlatarak önleyin. –
Evet, bu benim gerçek kodumda kullandığım çözümdür, ancak örnekte olup bitenlerden hala emin değilim. –
Otomatik değişkeninizin türünü yazdırmayı deneyin. Typeid'in çalışıp çalışmadığından emin değil. Türünü öğrendikten sonra geri kalan kısım kolay olmalıdır. –