问题标签 [class-members]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 当我们在该类的头文件中定义类成员函数时,必须使用 inline 关键字。为什么?
我在头文件中定义了一个类,并在同一个头文件中实现了它的功能。但是在定义这些函数时,我必须在函数定义中添加 inline 关键字。否则编译器会给出编译时错误。
我知道内联只是对编译器的提示。那么为什么有必要在函数定义中加入 inline 关键字。
我正在使用带有 qt 的 Visual Studio 编译器来编译代码
这是代码
临时文件.h
临时文件.cpp
主文件
错误
c# - 在同一行声明的多个字段的可访问性
我想知道我是否这样做所有变量都是公开的还是只是第一个:
或者,如果我需要像这样声明它们:
第二个选项显然有效,但第一个选项也有效吗?
python - 在一个类变量中收集所有实例总是不好的吗?
考虑存储云位置的简单天气模型的两个版本:
对比
这基本上已经被惩罚了 ,将一个类的所有实例存储在一个类字段中是不是很糟糕? 但这里强调作用于所有实例的类方法。对于第二种方法提供的最后三行的简单性,没有什么可说的吗?
我知道另一种方法是创建一个类似列表的类,例如,collection 并为该类提供 update_all() 等方法,但对我来说似乎并没有好多少。
c++ - 名称查找和类范围
为什么setVal的返回类型是string类型,参数类型是double类型
c++ - 将选项传递给类或其成员函数c ++的优雅方式
我对 C++ 和 OO 编程还很陌生,并且在以正确的方式设计我的类时遇到了一些麻烦。我的应用程序基于一组可以由用户在配置文件中设置的参数。这些参数在执行开始时被读入,并被分配到不同的程序部分,即基于这些执行不同任务的参数构建类。但类似于这个问题
某些类可能取决于许多不同的参数/选项(例如 9)。这些参数可以指定类本身或公共成员函数的执行。这些选项/参数在执行期间不应更改。我考虑过不同的解决方案,将所有参数嵌入到适当的类中,以避免丑陋的函数/构造函数调用,但似乎没有人对我有吸引力。
1) 仅存储每个类中构造所需的参数。其余部分根据需要从保存配置文件的结构传递给成员函数。
优点:类及其方法对参数的依赖性变得明显。缺点:这也可能导致带有许多参数的函数调用。这也不理想,因为每次调用此函数时我都必须明确指定所有选项,尽管选项不会改变。
2)在构造时将所有参数传递给类,并使它们成为私有成员变量。这导致类型的构造函数
如果在创建该类的多个对象时总是必须明确指定所有参数,这很烦人。
3) 将所有参数保存在一个大型结构中。使指向该结构的共享指针成为每个类的私有成员变量。优点:构造函数只需要一个指针。缺点:从类接口中,不清楚该类使用了配置中的哪些参数。评论可能会澄清这一点。
4) 灵感来自于
在每个包含所需参数的类中定义一个嵌套选项结构,例如
优点:从界面可以清楚地看到此类使用了哪些选项。通过向选项类添加成员函数,可以直接从配置文件中读取这些选项。用户可以在没有配置文件的情况下创建此类特定选项集的实例,并且可以根据需要更改默认值。除了构造类的通用参数之外,只有这样的选项集必须提供给构造函数。其实这是我最喜欢的方法。
缺点:我很难区分哪些参数应该是类的私有成员变量或应该属于选项集。这导致了一个问题,即成员变量是什么以及类/成员函数的选项是什么。你有什么建议吗?
你能评论一下我的想法并给出一些建议吗?
谢谢 !
c# - 在覆盖发件人时引发类成员对象的事件
我有一个MyEvent
定义的事件Class B
和一个事件处理程序的委托,如MyEventHandler(object sender, MyEventArgs e)
.
我的应用程序有几个实例Class A
,每个Class A
实例都有一个成员实例Class B
。
如果Class A
订阅了一个处理程序,ClassB.MyEvent
那么sender
将是Class B
引发事件的实例,并且e
将是MyEventArgs
来自对 的Class B
调用OnMyEvent(e)
。
但是 - 我真正想要的是让应用程序订阅一个处理程序ClassA.ClassB.MyEvent
(或ClassA.ClassBMyEvent
在适当的情况下),它sender
表示具有引发事件的实例的实例,并且仍然是来自对.Class A
Class B
e
MyEventArgs
Class B
OnMyEvent(e)
我可以创建一种由subscribesWrapperEvent
的Class A
处理程序引发的类型,但这似乎不优雅,我想知道是否有更清洁的方法来做到这一点?Class A
ClassB.MyEvent
每个请求的代码片段:
c++ - C++ - 在内部,当定义一个类的成员函数时,应该使用成员变量名称还是它的 getter 函数?
如果问题标题不能有效(或根本)反映我的实际问题,我深表歉意;这是我第一次在 stackoverflow 上提问或回答,可能搞砸了……
无论如何,我的(详细)问题是这样的:
在需要使用私有成员变量的类中定义公共成员函数时,每个变量(私有变量)都具有公共成员“getter”函数(请不要回答说“失去 getter/setter...”,我使用它们),会不会更好——实际上是“更好”,比如让类在 C++ 编译器之间更“可扩展”,哪个选项允许更多“前向兼容性”——使用 this->m_variable 或使用 this- >getm_variable()?
我从我目前正在进行的项目中包含了以下代码示例(创建一个名为 Family 的类),以尝试澄清我的意思:
Family.h 的片段
Family.cpp 的片段
因此,现在对于示例的问题已更改:
countChildren(gender g)
在我拥有的函数的定义中i < this->numChildren;
(就我之前所说的指标而言)使用会更好i < this->countChildren();
吗?同样,当为同一个 for 循环遍历 children 数组时,Person*
在当前迭代中使用*(this->children + i)
OR to use来定义 each 会更好*(this->getChild() + i);
吗?
提前感谢您的帮助,如果这个问题对于stackoverflow来说太“基于讨论”,我深表歉意,正如我之前提到的,这是我第一次提出问题。
java - 直接初始化类成员与在方法中执行它有什么区别?
我已经完成了一项 Google Foobar 任务,并且很好奇为什么 2 个似乎等效的实现以不同的方式工作。当第二个解决方案通过所有测试用例时,第一个给我带来“测试 2 失败”。我知道他们两个都没有遵循最佳 OOP 实践,但我很感兴趣第一个实现的确切问题是什么。
1.
2.
java - Java仅在主类中的静态成员
在包含 main 方法的类中,将该类的所有成员声明为静态是不好的做法吗?如果是这样,为什么?在 main 方法中,创建一个封闭类的新实例,然后从构造函数中运行程序会更好吗?
编辑:(澄清)我知道关于静态和单例的概念以及通常何时使用它。但是这个问题专门针对程序的主类。@Andrew Tobilko(显然删除了他的答案..)从他的回答来看似乎最能理解我的问题。就我而言,我的主类大约是 200 LOC,它使用了另外两个小类(每个小于 100 LOC),所以它是一个小程序。主类包含创建一个 Swing GUI 和一些运行逻辑,不需要多个实例,所以我想我可以将所有内容都设为静态,以便能够使用静态主方法中的所有内容。这是有动机的吗?一位用 C# 编写代码的朋友告诉我,在 C# 中使用大量静态意味着死刑。会不会有一些内存问题或其他什么?
c++ - std::string 类成员应该是指针吗?
为什么/为什么不?
假设我有一个类,它在构造函数中接受一个字符串并存储它。这个类成员应该是一个指针,还是一个值?
或者...
如果我要存储原始类型,我会复制一份。如果我要存储一个对象,我会使用一个指针。
我觉得我想复制那个字符串,但我不知道什么时候决定。我应该复制向量吗?套?地图?整个 JSON 文件...?
编辑:
听起来我需要阅读移动语义。但无论如何,我想让我的问题更具体一点:
如果我有一个 10 兆字节的文件作为 const 字符串,我真的不想复制它。
如果我要更新 100 个对象,将 5 个字符的 const 字符串传递给每个对象的构造函数,那么它们都不应该拥有所有权。可能只是复制字符串。
所以(假设我没有完全错)很明显在课外做什么,但是当你设计时class GenericTextHaver
,你如何决定文本拥有的方法?
如果您只需要一个在其构造函数中采用 const 字符串的类,并允许您从中获取具有相同值的 const 字符串,那么您如何决定如何在内部表示它?