草庐IT

msf会话派生cs

全部标签

c++ - 从非模板基派生模板类

我正在尝试让Derived从Base派生:classBase{public:Base(){};};templateclassDerived:publicBase{public:Derived::Derived(){}};这给了我以下错误:errorC3254:'Derived':classcontainsexplicitoverride'{ctor}'butdoesnotderivefromaninterfacethatcontainsthefunctiondeclarationnote:seereferencetoclasstemplateinstantiation'Derived'

c++ - 如何让派生类调用其他派生类的方法?面向对象设计

假设我有类似的东西——请注意,这只是一个例子。classCar{voidaccelerate();voidstop();}classPerson{voiddrive(Carcar);}classToyota:publicCar{voidaccelerateUncontrollably();}classToyotaDriver:publicPerson{voiddrive(Carcar){//HowtoaccelerateUncontrollablywithoutdynamiccast?}}Toyotas和ToyotaDriver是一对夫妇,即我可以有一个ToyotaFactory类,它

c++ - 如果不从派生构造函数调用基类构造函数会怎样?

是否总是需要从派生类构造函数调用基类构造函数?如果您不调用它会发生什么? 最佳答案 假设您正在谈论C++(无论如何,这在大多数其他语言中应该是相似的),如果您不显式调用基类的构造函数,它的默认构造函数将被自动调用(如果存在;如果不,编译器会引发错误)。 关于c++-如果不从派生构造函数调用基类构造函数会怎样?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4360938/

c++ - 当函数的异常规范具有基类型时,函数能否抛出派生类异常?

我有以下代码。classBase{};classDerived:publicBase{};classTest{public:voidfun()throw(Base){throwDerived();}};intmain(){Testob;ob.fun();}当函数fun()的异常规范列表具有基类型时,函数fun()可以抛出派生类型的异常吗? 最佳答案 由于Derived派生自Base,因此从技术上讲,它是一个Base。所以,是的,如果您的方法签名列出了它们的基类型,您可以抛出派生异常类型。但请注意,正如@MSalters所说,有iss

c++ - 强制派生类覆盖至少一个虚函数

想象一下这个简单的基类:structsimple_http_service{virtualreplyhttp_get(…);virtualreplyhttp_post(…);virtualreplyhttp_delete(…);//etc.};我想阻止用户从此类派生而不覆盖至少其中一个,并阻止他们实例化simple_http_service有什么好的方法可以做到这一点吗? 最佳答案 这听起来像是一个非常奇怪的约束。一定要保护用户免受不正确的使用,但不要试图禁止您只是“看不到重点”的事情。如果在不覆盖这三个函数中的任何一个的情况下从你

从基础到派生的 shared_ptr 的 C++ dynamic_ptr_cast 失败

这是我本周遇到的一个益智游戏。部分原因是我在编写了一段时间的Java代码后刚刚回到C++编码。给定以下代码:classBase{};classA:Base{public:virtualvoidrun(){coutptrToA=shared_ptr(newC());cout(ptrToA)run();assert(dynamic_pointer_cast(ptrToA));cout为什么会产生如下输出?PointertoA:0x1f29c010DynamicCastAptrtoC:0Running...ThisisC.tester-cpp:tester.cpp:89:intmain(in

c++ - 如何将从模板参数派生的编译时信息添加到模板?

我尝试使用Stroustrup在GoingNative2012上展示的用户定义文字来实现单元。(从23:00分钟开始)。这是代码:#includeusingstd::cout;usingstd::endl;templatestructUnit{//aunitintheMKSsystemenum{m=M,kg=K,s=S};};template//amagnitudewithaunitstructValue{doubleval;constexprValue(doubled):val(d){}};usingMeter=Unit;usingSecond=Unit;usingDistance=

c++ - 将 QML 中对象的 QAbstractListModel 派生列表模型成员绑定(bind)为 Q_PROPERTY

我想出了如何将QAbstractListModel派生列表模型的实例公开和绑定(bind)到/在QML中。但我真正想做的是向QML公开一个对象并将一个成员绑定(bind)为Q_PROPERTY,该成员是QAbstractListModel派生的列表模型。我试过这种方法:classMyObject:publicQObject{Q_OBJECTQ_PROPERTY(MyListModelmyListModelREADmyListModelNOTIFYmyListModelChanged)public:explicitMyObject(QObject*parent=0);MyListMode

c++ - c++1y 是否允许从派生类对基类变量进行类内初始化?

取而代之的是:classbase{protected:base(intvalue):member{value}{}intmember=0;};classderived_1:publicbase{public:derived_1():base{1}{}};classderived_2:publicbase{public:derived_2():base{2}{}};这会很有用:classbase{protected:intmember=0;//Defaultvalue};classderived_1:publicbase{base::member=1;//Insteadofpassing

c++ - 如何正确组合来自基类和派生类的函数以避免警告?

这个问题类似于this,但更复杂。有接口(interface)和类:classB{public:virtualstringgetName(intindex){returnnames.size()names;};templateclassA:publicT{public:stringgetName(void)//warninghere{returnname;};protected:stringname;};intmain(intargc,constchar*argv[]){Atest;}如您所见,我不能在A中使用usingT::getName,因为T可能没有getName()方法。我怎样