草庐IT

derivation

全部标签

c++ - 无法将 "derived"转换为其私有(private)基类 "base"

这个问题在这里已经有了答案:CanIcastaderivedclasstoaprivatebaseclass,usingC-stylecast?(3个回答)关闭7年前。我在尝试创建一个继承自定义纯虚函数的类的类的对象时遇到错误。我不确定出了什么问题。我知道我需要重写派生类中的纯虚函数,但它不起作用。我只想重写ProduceItem类中的函数,而不是Celery类,因为我希望Celery类从ProduceItem继承重写的方法。在主要:GroceryItem*cel=newCelery(1.5);//Cannotcast'Celery'toitsprivatebaseclassGroce

spring - 在 STS 3.1 的 Spring Data JpaRepository 接口(interface)中到处出现 "Invalid derived query"错误

我们已经完全按照SpringData文档中的说明实现了我们的存储库。在我们从STS2.9升级到STS3.1之前,一切都很好。所有试图让这些错误消失的尝试都失败了,在某些情况下甚至没有意义!它们与界面或使用的实体中的任何属性都不匹配!这是一个例子:publicinterfaceCreditNotesRepositoryextendsJpaRepository{CreditNotesfindCurrentCreditNotes(LongshipmentDetailId);}findCurrentCreditNotes是我们实体中的命名查询。这段代码执行得很好。@NamedQueries({

mysql - MySQL中的错误 "Every derived table must have its own alias"是什么?

我在MySQL上运行这个查询SELECTIDFROM(SELECTID,msisdnFROM(SELECT*FROMTT2));它给出了这个错误:Everyderivedtablemusthaveitsownalias.是什么导致了这个错误? 最佳答案 每个派生表(AKA子查询)确实必须有一个别名。IE。括号中的每个查询都必须有一个别名(AS不管),它可以用于在外部查询的其余部分中引用它。SELECTIDFROM(SELECTID,msisdnFROM(SELECT*FROMTT2)AST)AST当然,在您的情况下,整个查询可以替换

c++ - 将 shared_ptr<Derived> 作为 shared_ptr<Base> 传递

通过shared_ptr的最佳方法是什么?将派生类型转换为采用shared_ptr的函数基本类型?我一般通过shared_ptrs通过引用避免不必要的复制:intfoo(constshared_ptr&ptr);但如果我尝试做类似的事情,这不起作用intfoo(constshared_ptr&ptr);...shared_ptrbar=make_shared();foo(bar);我可以使用foo(dynamic_pointer_cast(bar));但这似乎不是最理想的,原因有两个:一个dynamic_cast对于一个简单的派生到基础的转换来说似乎有点过分了。据我了解,dynamic

c++ - 将 vector<Derived*> 放入需要 vector<Base*> 的函数中

考虑这些类。classBase{...};classDerived:publicBase{...};这个函数voidBaseFoo(std::vectorvec){...}最后是我的vectorstd::vectorderived;我想通过derived发挥作用BaseFoo,但编译器不让我。我如何解决这个问题,而不将整个vector复制到std::vector? 最佳答案 vector和vector是不相关的类型,所以你不能这样做。这在C++FAQhere中有解释。.您需要将变量从vector更改为到vector并插入Derive

c++ - 将 vector<Derived*> 放入需要 vector<Base*> 的函数中

考虑这些类。classBase{...};classDerived:publicBase{...};这个函数voidBaseFoo(std::vectorvec){...}最后是我的vectorstd::vectorderived;我想通过derived发挥作用BaseFoo,但编译器不让我。我如何解决这个问题,而不将整个vector复制到std::vector? 最佳答案 vector和vector是不相关的类型,所以你不能这样做。这在C++FAQhere中有解释。.您需要将变量从vector更改为到vector并插入Derive

c++ - 将 shared_ptr<Base> 向下转换为 shared_ptr<Derived>?

更新:此示例中的shared_ptr与Boost中的类似,但它不支持shared_polymorphic_downcast(或dynamic_pointer_cast或static_pointer_cast)!p>我正在尝试在不丢失引用计数的情况下初始化指向派生类的共享指针:structBase{};structDerived:publicBase{};shared_ptrbase(newBase());shared_ptrderived;//error:invalidconversionfrom'Base*const'to'Derived*'derived=base;到目前为止,一切

c++ - 将 shared_ptr<Base> 向下转换为 shared_ptr<Derived>?

更新:此示例中的shared_ptr与Boost中的类似,但它不支持shared_polymorphic_downcast(或dynamic_pointer_cast或static_pointer_cast)!p>我正在尝试在不丢失引用计数的情况下初始化指向派生类的共享指针:structBase{};structDerived:publicBase{};shared_ptrbase(newBase());shared_ptrderived;//error:invalidconversionfrom'Base*const'to'Derived*'derived=base;到目前为止,一切