草庐IT

getter-only

全部标签

C++ const public 字段与 getter 方法

我想为某个类的每个对象添加唯一ID(在单个session中)。一种解决方案是使用增加一些静态计数器的工厂函数。一个更简单的解决方案是将这个计数器添加到类本身,例如:classfooWithUniqueId{public:fooWithUniqueId():id(next_id++){...};longid;private:staticlongnext_id=0;}然而,一个缺陷是id字段是公共(public)的,并且可以由调用者更改,因此违反了它的唯一性。传统的(好吧,至少在我看来)是将id设为私有(private),并使用getter函数来访问它,因此:classfooWithUni

java - Kotlin - 可空字段的非空 getter

我是Kotlin的新手,我尝试将一个小型Java项目重新设计为这种新语言。我在我的项目中使用了mongodb,并且我有一个类,例如:classPlayerEntity{constructor(){}//formongodbtocreateaninstanceconstructor(id:ObjectId,name:String){//usedincodethis.id=idthis.name=name}@org.mongodb.morphia.annotations.Idvarid:ObjectId?=nullvarname:String?=null}由于构造函数为空,我必须将id字段

java - Kotlin - 可空字段的非空 getter

我是Kotlin的新手,我尝试将一个小型Java项目重新设计为这种新语言。我在我的项目中使用了mongodb,并且我有一个类,例如:classPlayerEntity{constructor(){}//formongodbtocreateaninstanceconstructor(id:ObjectId,name:String){//usedincodethis.id=idthis.name=name}@org.mongodb.morphia.annotations.Idvarid:ObjectId?=nullvarname:String?=null}由于构造函数为空,我必须将id字段

c++ - 通过引用返回或创建一个典型的 setter/getter?

这个问题在这里已经有了答案:Getterandsetter,pointersorreferences,andgoodsyntaxtouseinc++?(8个答案)关闭9年前。我想知道C++中的良好实践,我正面临为类成员制作getter/setter的问题。那么,为什么不简单地通过引用返回成员,这样我就可以修改或访问它的值来读取它?具体来说,这是我的代码:classChest:publicGameObject{public:Chest();~Chest();staticint&num_chests();private:staticintnum_chests_;};这是一种不好的做法吗?我

c++ - 从命令行构建 x64 C++ 项目说 : This operation should only take place on the UI thread

VisualStudio2013在构建时出现问题,显示错误信息如下:c:>devenv/builddebug/project(projectname)/projectconfig"debug|x64"(solutionName).sln1>ThisoperationshouldonlytakeplaceontheUIthread. 最佳答案 我刚刚在使用VisualStudio2015编译C++代码时遇到了这个问题(错误:此操作应该只发生在UI线程上)。最后追踪到编译失败的项目的.vcxproj.filters文件。该文件已从另一个

c++ - 静音 gcc 的 "only available with -std=c++XX or -std=gnu++XX"警告

后来的语言标准中的一些语言特性非常有用,编译器供应商选择将它们向后移植到早期版本。典型的例子是ifconstexpr。这个简单的程序:templateconstexprintget(){ifconstexpr(sizeof(T)>10){return1;}else{return0;}}static_assert(get()==0,"!");static_assert(get()==1,"!");根据语言规则,技术上需要C++17,并且在C++11中技术上格式不正确...但是gcc和clang都可以在-std=c++11上编译它无论如何。每个都会发出警告。Clang会告诉您该警告是什么,

c++ - 什么是更好的做法? protected / setter/getter ?

如果我有一个继承自另一个的类,并且只有这个类必须使用某个变量,哪种做法更好?要在基类中说变量是“protected”,还是让它私有(private)并给它一个protectedgetter?我听说过相互矛盾的事情。我的老师告诉我要始终使用getter,而其他人告诉我,在任何级别使用getter都会暴露糟糕的程序设计。真正的答案是什么?我觉得两者都是不合逻辑的极端。此外,如果getter和setter是糟糕的程序设计,这是为什么呢?是否有任何资源可以教我更多有关如何构建代码的信息? 最佳答案 除了读取值之外,您是否需要(或预计您将来需

c++ - `noexcept` getters 和 setters 说明符

假设我有以下代码:classA{public:voidSetInteger(constintval)noexcept{integerMember=val;}voidSetString(conststd::string&val){stringMember=val;}intGetInteger()constnoexcept{returnintegerMember;}std::stringGetString()const{returnstringMember;}private:intintegerMember;std::stringstringMember;}对我来说,对整数类型和指针使用n

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

kotlin - 来自类型参数的属性的自定义 getter

我有一个有点像这样的Java文件:publicclassThing{privateStringproperty;publicThing(Stringproperty){this.property=property;}publicStringgetProperty(){if(property==null){return"blahblahblah";}else{returnproperty;}}}显然我的实际类(class)还有更多内容,但以上只是一个示例。我想用Kotlin写这个,所以我从这个开始:classThing(valproperty:String?)然后我尝试使用theoffi