草庐IT

Class-Level

全部标签

android studio非业务代码报错 Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。

使用的androidstudio(2020.3.1)android的原生项目,项目突然启动不起来,一直报错,下面是错误信息。Duplicateclasskotlin.collections.jdk8.CollectionsJDK8Ktfoundinmodulesjetified-kotlin-stdlib-1.8.20(org.jetbrains.kotlin:kotlin-stdlib:1.8.20)andjetified-kotlin-stdlib-jdk8-1.6.21(org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)Duplicatecla

java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext cannot access class

Task:app:kaptGenerateStubsDebugKotlinFAILEDe:java.lang.IllegalAccessError:classorg.jetbrains.kotlin.kapt3.base.KaptContext(inunnamedmodule@0x4d1ecff7)cannotaccessclasscom.sun.tools.javac.util.Context(inmodulejdk.compiler)becausemodulejdk.compilerdoesnotexportcom.sun.tools.javac.utiltounnamedmodule@0

c++ - xvalues : differences between non class types and class types

考虑下面的最小示例:#includestructS{};intmain(){Ss;std::move(s)=S{};}它编译没有错误。如果我改为使用非类类型,则会收到错误。例如,以下代码无法编译:#includeintmain(){inti;std::move(i)=42;}枚举、作用域枚举等也是如此。错误(来自GCC)是:usingxvalue(rvaluereference)aslvalue这背后的原理是什么?我想这是对的,但我想了解我可以对除非类之外的所有类型执行此操作的原因是什么。 最佳答案 C++允许对类对象右值进行赋值,

c++ - '_ITERATOR_DEBUG_LEVEL' : value '0' doesn't match value '2' 检测到不匹配

使用VS2010构建时,我正在构建一个导致许多此类链接错误的库:errorLNK2038:mismatchdetectedfor'_ITERATOR_DEBUG_LEVEL':value'0'doesn'tmatchvalue'2'导致我必须同时发布我的库的发行版和调试版。我没有理由发布lib的调试版本,它只会使二进制分发版膨胀。但是在调试中构建的客户端代码拒绝链接到我的发布库。我以前见过这个问题,但他们似乎没有问正确的问题。我明白这个错误是什么,以及为什么我会得到它(好吧,有点;我不确定到底是什么发出了依赖性。你呢?),但我想知道的是如何消除这种依赖性的发生在我的库中?类似于在使用冲

c++ - 错误 : name followed by '::' must be a class or namespace name

我正在尝试构建我的第一个ATLDLL项目,我在其中使用ADODB。这里的问题是我给每个ADODB类都加了下划线ADODB::_ConnectionPtrspADOConnection;当我将鼠标移到ADODB::_ConnectionPtr上时,我得到namefollowedby'::'mustbeaclassornamespacenamespADOConnection我得到expecteda';'。请问这是什么意思?请问我该如何解决?非常感谢! 最佳答案 编译器无法找到ADODB的声明。确保在编译器提示的翻译单元中包含相关head

c++ - 有类(class)的 friend 但不能访问私有(private)成员

友元函数应该可以访问一个类的私有(private)成员吧?那么我在这里做错了什么?我已经将我的.h文件包含在运算符#includeusingnamespacestd;classfun{private:inta;intb;intc;public:fun(inta,intb);voidmy_swap();inta_func();voidprint();friendostream&operator 最佳答案 在这里...ostream&operator你需要ostream&operator(我被这件事折磨了无数次;你的运算符重载的定义与声

c++ - "Template argument for template template parameter must be a class template or type alias template"

templatestructList{};templateclass>structListHelper;templatestructListHelper>{};^/*Error:Templateargumentfortemplatetemplateparametermustbeaclasstemplateortypealiastemplate*/怎么了?我正在使用clang++SVN。 最佳答案 您有一个模板模板参数。您必须传递一个模板作为其参数。您改为将模板实例化作为其参数传递-这是一个具体类,而不是模板(其所有参数均已绑定(bi

c++ - Class vs Struct 仅用于数据?

在这种情况下,使用类而不是结构有什么优势吗?(注意:它只会保存变量,永远不会有函数)classFoo{private:structPos{intx,y,z};public:PosPosition;};对比:structFoo{structPos{intx,y,z}Pos;};类似问题:WhenshouldyouuseaclassvsastructinC++?WhatarethedifferencesbetweenstructandclassinC++?WhenshouldIuseastructinsteadofaclass? 最佳答案

C++ 错误 : object of abstract class type is not allowed: pure virtual function has no overrider

继承有问题。我不知道我做错了什么。FigureGeometry.h#ifndefFIGUREGEOMETRY#defineFIGUREGEOMETRYstaticconstfloatPI=3.14159f;classFigureGeometry{public:virtualfloatgetArea()const=0;virtualfloatgetPerimeter()const=0;};#endifCircle.h#ifndefCIRCLE#defineCIRCLE#include"FigureGeometry.h"classCircle:publicFigureGeometry{fl

c++ - 前向声明包括,在声明之上包括(ClassFwd.h + Class.h)

在EffectiveC++(第3版)中,ScottMeyers在第31项中建议,类应该在其经典的声明(.h)和定义(.cpp)文件之上有一个前向声明包含文件(fwd.h)不需要完整定义的类可以使用,而不是前向声明自己。我有点看到它的情况,但我真的不认为这是一个可行的选择......它似乎很难维护,相当大材小用而且几乎没有必要。但是,我可以看到它用于模板前向声明,这是相当繁重的。但是对于简单的类?维护起来似乎很痛苦,并且会创建大量几乎空的包含文件,这些文件的用途很小……值得这么麻烦吗?这是一个例子://Class.hclassClass{Class();~Class();};//Clas