草庐IT

final-class

全部标签

c++ - c++ `override`/`final` 说明符的反义词是什么?

在c++11中overridespecifier防止不覆盖预期的虚拟基函数(因为签名不匹配)。finalspecifier防止无意中覆盖派生类中的函数。=>是否有说明符(可能是first或no_override)防止覆盖未知的基函数?当一个虚函数被添加到一个基类时,我想得到一个编译器错误,这个基类的签名与派生类中已经存在的虚函数具有相同的签名。编辑4:为了保持这个问题的简单性和相关性,这里又是原始伪代码抽象classB:A具有private:virtualvoidfooHasBeenDone()=0;classC:Bimplementsprivate:virtualvoidfooHas

c++ - 将 std::variant 转换为另一个具有父类(super class)型集的 std::variant

我有一个std::variant,我想将其转换为另一个具有其类型超集的std::variant。有没有一种方法可以让我简单地将一个分配给另一个?templateToVariantConvertVariant(constFromVariant&from){ToVariantto=std::visit([](auto&&arg)->ToVariant{returnarg;},from);returnto;}intmain(){std::varianta;a=5;std::variantb;b=ConvertVariant(a);return0;}我希望能够简单地编写b=a来进行转换,而不是

c++ - 如何在 CppUnitTestFramework 中对具有 TEST_CLASS 的类使用继承

我有一个继承自另一个类的类,如下所示:classTestClass:publicBaseClass我想知道是否可以使用TEST_CLASS宏或作为C++的Microsoft单元测试框架一部分的其他宏将其作为测试类。我试过:classTEST_CLASS(TestClass:publicBaseClass)但是IDE给出了错误'Error:expectedeitheradefinitionoratagname'并且编译器错误是errorC3861:'__GetTestClassInfo':identifiernotfound我知道在测试类上继承可能是不好的做法,但它会使测试的实现更容易。

java - 在 Kotlin 数据类中调用父类(super class)构造函数之前的访问函数

我在Kotlin中使用数据类来显着减少我必须编写的Java代码量。但是,在我的一个Java类中,我不确定如何在Kotlin中实现相同的结果。我的Java类看起来有点像这样:publicclassDataObject{privateintmId;privateStringmName;publicDataObject(intid,Stringname){mId=id;mName=name;}publicDataObject(Contextcontext,intid){mId=id;Cursorcursor=...cursor.moveToFirst();mName=cursor.getSt

java - 在 Kotlin 数据类中调用父类(super class)构造函数之前的访问函数

我在Kotlin中使用数据类来显着减少我必须编写的Java代码量。但是,在我的一个Java类中,我不确定如何在Kotlin中实现相同的结果。我的Java类看起来有点像这样:publicclassDataObject{privateintmId;privateStringmName;publicDataObject(intid,Stringname){mId=id;mName=name;}publicDataObject(Contextcontext,intid){mId=id;Cursorcursor=...cursor.moveToFirst();mName=cursor.getSt

c++ - 嵌套类奇怪函数查找: surrounding class functions hide global functions

我有以下简化代码namespaceNamespace{intfoo(){return1;}classClass{public:intfoo()const{return2;}classNested{public:Nested(){cout我得到了这个错误:error:cannotcallmemberfunction‘intNamespace::Class::foo()const’withoutobject:cout似乎编译器选择了非静态intNamespace::Class::foo()const而不是全局函数intNamespace::foo()。但是怎么能指望其他类的非静态函数可以在

c++ - 警告 : overloaded virtual function "Base::process" is only partially overridden in class "derived"

我低于警告。我的部分代码是:classBase{public:virtualvoidprocess(intx){;};virtualvoidprocess(inta,floatb){;};protected:intpd;floatpb;};classderived:publicBase{public:voidprocess(inta,floatb);}voidderived::process(inta,floatb){pd=a;pb=b;....}我低于警告:Warning:overloadedvirtualfunction"Base::process"isonlypartiallyo

android - 如何解决 : "error: cannot find symbol class ..." after converting Java class to Kotlin?

我正在尝试从Kotlin开始,将我项目的一些Java类转换为Kotlin,并创建一个混合的Java/Kotlin项目。为了配置环境,我做了以下操作:已下载最新版Kotlin插件(1.0.2);在顶层gradle.plugin我添加了:classpath"org.jetbrains.kotlin:kotlin-android-extensions:1.0.2"在依赖项部分;在我的模块的gradle插件中,我在依赖项部分添加了:compile"org.jetbrains.kotlin:kotlin-stdlib:1.0.2";我选择了我想转换为kotlin的POJO类,从菜单Code->C

android - 如何解决 : "error: cannot find symbol class ..." after converting Java class to Kotlin?

我正在尝试从Kotlin开始,将我项目的一些Java类转换为Kotlin,并创建一个混合的Java/Kotlin项目。为了配置环境,我做了以下操作:已下载最新版Kotlin插件(1.0.2);在顶层gradle.plugin我添加了:classpath"org.jetbrains.kotlin:kotlin-android-extensions:1.0.2"在依赖项部分;在我的模块的gradle插件中,我在依赖项部分添加了:compile"org.jetbrains.kotlin:kotlin-stdlib:1.0.2";我选择了我想转换为kotlin的POJO类,从菜单Code->C

x86-64 : when are structs/classes passed and returned in registers? 上的 C++

假设Linux上的x86-64ABI,在C++中的什么条件下,结构传递给函数是在寄存器中还是在堆栈中?在什么情况下它们会返回到寄存器中?类(class)的答案会改变吗?如果它有助于简化答案,您可以假设一个参数/返回值并且没有浮点值。 最佳答案 ABI规范定义here.有更新版本可用here.我假设读者已经习惯了文档的术语,并且他们可以对基本类型进行分类。如果对象大小大于两个八字节,则在内存中传递:structfoo{unsignedlonglonga;unsignedlonglongb;unsignedlonglongc;//Com