草庐IT

getter-only

全部标签

c++ - 如何编写 C++ getter 和 setter

如果我需要为我编写一个setter和/或getter,我会这样写:structX{/*...*/};classFoo{private:Xx_;public:voidset_x(Xvalue){x_=value;}Xget_x(){returnx_;}};但是我听说这是编写setter和getter的Java风格,我应该用C++风格来编写。此外,有人告诉我这是低效的,甚至是不正确的。那是什么意思?如何用C++编写setter和getter?假设对getter和/或setter的需求是合理的。例如。也许我们在setter中做一些检查,或者我们只写getter。关于不需要getter和set

c++ - 返回 vector 大小的 getter 应该返回什么类型的值?

返回vector大小的getter应该返回什么类型的值?例如,我的项目中有许多以下类型的setter/getter,并且我需要(int)转换来删除编译警告:intgetNumberOfBuildings()const{return(int)buildings.size();} 最佳答案 C++03方式:std::vector::size_typegetNumberOfBuildings()const{returnbuildings.size();}C++11方式:autogetNumberOfBuildings()const->de

c++ - 从库中的 std::exception 派生:Does a headers-only solution work for catching exceptions?

在我们的跨平台开源库中,我们派生自std::exception以定义可以在库代码和用户代码中捕获的自定义异常。我看到这实际上是一个推荐的过程,但在VisualStudio2015(或者更确切地说,伴随的新MSVC版本?)中,在实现类(warningC4275)中抛出警告-另请参见此处:Howtodllexportaclassderivedfromstd::runtime_error?当然我们可以忽略这个错误,但这对我来说似乎是错误的。与旧的VisualStudio版本相比,出现警告的原因似乎是std::exception曾经在旧的MSVC版本中导出,但同时不再导出。无论哪种情况,我都觉

c++ - Visual Studio 错误 : LNK1104: cannot open file 'kernel32.lib' - only in WP8 projects/Win32 builds

我最近遇到了这个问题(几天前一切正常):VisualStudio2012开始拒绝构建原生WP8项目。今天,我从模板“WindowsPhoneDirect3D应用程序(仅限native)”创建了新解决方案,以检查WP是否正确支持我新创建的DLL。我尝试编译这个项目,首先没有任何更改或额外的引用-VS生成的纯代码。但是,它因给定错误而失败。我很清楚这是什么意思,可能的原因是什么,但是我不明白,在这种情况下它是从哪里来的。奇怪的事情:这只发生在“Win32”配置中,ARM编译正常:1>------Buildstarted:Project:PhoneDirect3DApp,Configurat

Ubuntu扩容报错:Unable to resize read-only file system /dev/sda3

当我们给Ubuntu新划分了空间,但是去给磁盘划分的时候,会报错:Unable to resize read-only file system /dev[sda3The file system can not be resized while it is mounted read-only.Either unmount the file system or remount it read-write.这是因为磁盘没有挂载起来,因此需要查看该磁盘的挂载路径,首先右键/dev/sda3点击信息,进去后就可以看到挂载的路径,分别是/和/var/snap/firefox/common/host-hun

c++ - 解决 "only static const integral data members can be initialized within a class"编译错误

以下创建全局对象会导致编译错误。#include"stdafx.h"#includeusingnamespaceSystem;usingnamespacestd;#pragmahdrstopclassTester;voidinput();classTester{staticintnumber=5;public:Tester(){};~Tester(){};voidsetNumber(intnewNumber){number=newNumber;}intgetNumber(){returnnumber;}}TestertesterObject;voidmain(void){cout>ne

c++ - QSocketNotifier : Can only be used with threads started with QThread error

我正在尝试使用QLocalServer作为ipc解决方案。qt的版本是4.6这是我的main.cpp:intmain(intargc,constchar*argv[]){QServertest();while(true){}}这是我的QServer类:classQServer:publicQObject{Q_OBJECTpublic:QServer();virtual~QServer();private:QLocalServer*m_server;QLocalSocket*m_connection;privateslots:voidsocket_new_connection();};Q

c++ - 如何在不生成拷贝的情况下使用 getter 和 setter?

我想知道如何为占用大量内存的成员变量使用getter和setter。通常我会这样做:classA{private:BigObjectobject;public:BigObjectgetObject()const{returnobject;}voidsetObject(constBigObject&object){this->object=object;}};但是我相信这个getter和setter会复制我不想要的BigObject。有更好的方法吗?我想这样做,但我在网上看到这不是一个好主意,因为如果使用不当会导致段错误:BigObject&getObject(){returnobjec

c++ - 将 std::atomic_flag 包装在 getter/setter 中是否会使它的 "atomicity"无效?

假设我有一个包含std::atomic_flag作为私有(private)成员的类,通过getter公开。类似于以下内容(伪代码):classThing{private:std::atomic_flagready=ATOMIC_FLAG_INIT;public:isReady(){returnready.test_and_set();}}我天真的问题是:通过方法查询标志是否会将其变成非原子操作,成为非原子函数调用(或者是?)?我是否应该让我的ready标记为公共(public)成员并直接查询它? 最佳答案 不,它没有。test_an

ios - build设置 : What changes should I do in the build settings so that on releasing the app it will show the languages on App Store as only English?

我在上传iOS应用程序时犯了一些错误,这使得我的应用程序在AppStore上显示为英语和德语。场景是我将(目标的info.plist)中的“本地化本地开发区域”键设置为德国,而我的应用程序实际上是一个英语应用程序(适用于所有地区)。但我不确定将此key更改为美国是否可以将应用程序的Appstore语言更改为仅英语。除此之外,我还在(项目信息)中的Localizations中将语言设置为:1.英文-开发语言2.德语我应该在设置中做哪些更改,以便在发布应用程序时它在AppStore中仅显示英语语言? 最佳答案 在尝试将应用程序上传到应用