草庐IT

Getter-Setter

全部标签

c++ - 使用 QTCreator 自动生成 setter / getter ?

尽管进行了一些搜索,但我还是找不到使用QTCreator2.3.1为C++类自动生成getter和setter的方法。你们知道有什么方法吗? 最佳答案 右键点击你的成员然后Refactor然后GenerateGetterandSettermemberfunction你就完成了:)在QtCreator3.2.x上,创建成员,然后单击它并按alt+Enter: 关于c++-使用QTCreator自动生成setter/getter?,我们在StackOverflow上找到一个类似的问题:

c++ - 使用 getter/setter vs "tell, don' t 问“?

告诉,不问原则here当我使用getter或setter时,通常会粘贴到我身上,人们告诉我不要使用它们。该网站清楚地解释了我应该做什么和不应该做什么,但它并没有真正解释为什么我应该告诉而不是询问。我发现使用getter和setter效率更高,而且我可以用它们做更多事情。想象一个具有health和armor属性的类Warrior:classWarrior{unsignedintm_health;unsignedintm_armor;};现在有人用特殊攻击攻击我的战士,降低他的护甲5秒。使用setter会是这样的:voidAttacker::attack(Warrior*target){t

具有延迟初始化的 C++ const getter 方法

为延迟初始化的成员变量实现getter方法并保持const正确性的正确方法是什么?也就是说,我希望让我的getter方法为const,因为在第一次使用它之后,它就是一个普通的getter方法。const只是第一次(当对象首次初始化时)不适用。我想做的事:classMyClass{MyClass():expensive_object_(NULL){}QObject*GetExpensiveObject()const{if(!expensive_object_){expensive_object=CreateExpensiveObject();}returnexpensive_object

java - getter 和 setter 会影响 C++/D/Java 中的性能吗?

这是一个相当古老的话题:setter和getter是好是坏?我的问题是:编译器在C++/D/Java内联getter和setter?与直接字段访问相比,getter/setter对性能(函数调用、堆栈帧)的影响程度。除了使用它们的所有其他原因之外,我想知道它们是否会影响性能,除了是一种良好的OOP实践。 最佳答案 这取决于。没有永远正确的通用答案。在Java中,JIT编译器可能会迟早内联它。据我所知,JVMJIT编译器只优化大量使用的代码,因此您最初可以看到函数调用开销,直到getter/setter被足够频繁地调用。在C++中,它

java - 封装——当 setter 已经公开时,为什么我们需要它?

这个问题在这里已经有了答案:Whyaregetterandsettermethodimportantinjava?[duplicate](6个回答)关闭7年前。封装是隐藏数据。我想在这里听到一些非常有趣的答案。当我们已经为变量声明了publicsetter方法时,保持变量为private的意义何在?我了解封装的用法,但是当我们将setter设为公共(public)时,将变量保留为private的意义何在,我们可以直接使用public访问修饰符.是因为我们不想让其他人知道我们在后端存储数据或管理数据的确切方式吗? 最佳答案 Isitb

c++ - 为什么在 Herb Sutter 的 CppCon 2014 演讲中不推荐使用值(value) setter 成员函数(回到基础 : Modern C++ Style)?

在HerbSutter的CppCon2014演讲中回归基础:现代C++风格,他在幻灯片28(awebcopyoftheslidesarehere)中提到了这种模式:classemployee{std::stringname_;public:voidset_name(std::stringname)noexcept{name_=std::move(name);}};他说这是有问题的,因为当使用临时调用set_name()时,noexcept-ness并不强(他使用短语“noexcept-ish”)。现在,我在我自己最近的C++代码中大量使用了上述模式,主要是因为它可以让我每次都输入两个s

c++ - C++11 中的所有/大多数 setter 函数是否应该编写为接受通用引用的函数模板?

考虑一个具有N成员变量的类X,每个都有一些可复制和可move类型,并且N对应的setter函数。在C++98中,X的定义可能如下所示:classX{public:voidset_a(Aconst&a){_a=a;}voidset_b(Bconst&b){_b=b;}...private:A_a;B_b;...};上述X类的Setter函数可以绑定(bind)到左值和右值参数。根据实际参数,这可能会导致创建一个临时的并且将最终导致一个复制分配;因此,此设计不支持不可复制类型。在C++11中,我们拥有move语义、完美转发和通用引用(ScottMeyers的术语),通过以这种方式重写set

json - Jackson JSON Marshall 忽略 getter

我正在使用Jackson将POJO转换为JSON以存储在数据库中。但是我有一个我想忽略的setter/getter。我看到了很多与@JsonIgnoreProperties相关的信息,但我似乎无法取得任何进展。我基本上想要@Transient的等价物。基本用例(我想忽略InternationalNumber):publicclassPhoneNumber{privateStringcountry;privateStringnumber;publicPhoneNumber(){}publicStringgetCountry(){returncountry;}publicStringget

php - 用于 PHP 中静态属性的魔术 __get getter

publicstaticfunction__get($value)不起作用,即使它起作用了,碰巧我已经需要魔法__getgetter来获取同一类中的实例属性。这可能是一个是或否的问题,所以,有可能吗? 最佳答案 不,这是不可能的。引用manualpageof__get:Memberoverloadingonlyworksinobjectcontext.Thesemagicmethodswillnotbetriggeredinstaticcontext.Thereforethesemethodscannotbedeclaredstat

c# - Getter、setter 和属性最佳实践。 Java 与 C#

我现在正在学习C#类(class),我正在尝试找出最好的做事方式。我来自Java背景,所以我只熟悉Java最佳实践;我是C#新手!在Java中,如果我有私有(private)属性,我会这样做;privateStringname;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}在C#中,我发现有很多方法可以做到这一点。我可以像Java一样做:privatestringname;publicvoidsetName(stringname){this.name=name;}