草庐IT

Getter-Setter

全部标签

如何在JavaScript对象上访问setter和Getter?

latihan2ObjekfunctiontimeObjc(hour,minute,second){this.hour=hour;this.minute=minute;this.second=second;this.setTime=function(whathour,whatminute,whatscnd){this.hour=whathour;this.minute=whatminute;this.second=whatscnd;};this.runTime=function(){returnthis.hour+":"+this.minute+":"+this.second};}timeOb

c++ - 访问 getter 的真正底层类型?

我知道setter/getter通常不好,但在这里,我只是用一个来说明一个更普遍的问题。考虑以下类:templateclassmy_tuplefinal{private:std::tuple_data;public:templatemy_tuple(U&&...u):_data(std::forward(u)...){}public:templateautoget()->decltype(std::get(_data)){returnstd::get(_data);}};考虑到我不能修改这个类。有没有办法,写一个外部元函数my_tuple_type(我所说的外部是指不属于该类的元函数)

实现文件中的 C++ Getters-Setter

我是C++的新手,我认为通过示例可以最好地理解我的问题。在我的头文件中,假设我有classmyClass{public:doublegetVar1();voidsetVar1(doublenewVar1);voidcopyVar1(myClass*dat);private:doublevar1;};在我的实现.cc文件中,实现copyVar1方法时,应该怎么做voidmyClass::copyVar1(myClass*dat){var1=dat->var1;}或voidmyClass::copyVar1(myClass*dat){var1=dat->getVar1();}在第二种情况下

c++ - C++ 中的 Setter 和 getter

来自Java,我习惯这样做:voidsetColor(Stringcolor){this.color=color;}但是,我最近切换到C++,我看到了很多这样的东西:voidsetColor(stringc){color=c;}为什么不是这个?这是不推荐的吗?voidsetColor(stringcolor){this->color=color;} 最佳答案 完全一样。在Java中,如果您将参数命名为c而不是color,则不会有任何阴影,您可以轻松编写voidsetColor(Stringc){color=c;}Java(或C++)

c++ - ctors 和 setter 参数的命名约定

对于那些没有像m_foo或foo_这样的特殊符号命名成员变量的人,您如何为您的ctors和setter命名参数?到目前为止我尝试过的一些选项...Obj(intfoo):foo(foo){}voidset_foo(intfoo){this->foo=foo;}Obj(int_foo):foo(_foo){}voidset_foo(int_foo){foo=_foo;}Obj(inta_foo):foo(a_foo){}//afor"argument"voidset_foo(inta_foo){foo=a_foo;}Obj(intinit_foo):foo(init_foo){}void

c++ - 这是一种设计模式——从 setter 返回这个吗?

这个有名字吗:classA{A*setA(){//setareturnthis;}A*setB(){//setbreturnthis;}};所以你可以这样做:A*a=newA;a->setA()->setB();使用这个有什么缺点吗?优势? 最佳答案 它被称为方法链(FAQlink),并且更常见于引用,而不是指针。方法链接与命名参数习语(FAQlink)密切相关,正如我现在发布此答案的初始版本后,看到SteveJessopdiscussesinhisanswer.NPI惯用语是一种提供大量默认参数的简单方法,而不会将复杂性强加到构造

c++ - setter 和 getter 的模板

我不熟悉模板,但我想知道是否可以将它们用于setter和getter方法。例如在这种情况下:doubleexmlClass::getA(void)const{returna_;}voidexmlClass::setA(constdouble&a){a_=a;}doubleexmlClass::getB(void)const{returnb_;}如您所见,方法几乎相同,只是它们引用了另一个私有(private)变量(a_、b_、c_)。有没有更优雅的方法来编写这些函数,或者在这种情况下像上面那样做是常见的做法?如果模板的使用很普遍,我将不胜感激您将如何在上面的代码中使用它们的示例。我要问

java - 使用 getter 和 setter 的私有(private)属性有什么好处?

这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个答案)关闭9年前。在面向对象编程中,我曾经有过这个问题,现在仍然有这个问题:Whatwouldbethebenefitofdeclaringaclassmemberasprivateifwewillcreateforitapublicgetterandapublicsetter?我没有发现上述情况与将类成员声明为公共(public)的情况在安全级别上有任何区别。谢谢!

c++ - 将set函数(setter)标记为constexpr的目的是什么?

这个问题在这里已经有了答案:Whatistheuseofaconstexpronanon-constmemberfunction?(2个答案)关闭3年前。我无法理解将setter函数标记为constexpr的目的,这是自C++14以来允许的。我的误解来自下一种情况:我声明了一个带有constexprc-tor的类,我准备在constexpr上下文中使用它,方法是创建该类constexprPointp1的constexpr实例。对象p1现在是常量,它的值无法更改,因此无法调用constexprsetter。另一方面,当我在非constexpr上下文Pointp中创建classPoint的

c++ - Gdiplus::Image::GetWidth() 和一堆其他 setter/getter 不应该是 "const"吗?

为什么它们不是常量?我认为这是有缺陷的API设计。还是我遗漏了什么?UINTGetWidth();UINTGetHeight();...对比UINTGetWidth()const;UINTGetHeight()const;... 最佳答案 有缺陷的API设计?C风格的C++头文件?来自带给我们的团队CString?不,不可能……说真的,不要指望GoTW任何Win32API中的-levelC++使用,或者不仅仅是围绕C样式句柄的基本包装器。HerbSutter一直忙于.NET:ingC++,而不是改进Microsoft库设计。WTL与