问题标签 [data-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.

0 投票
1 回答
272 浏览

c++ - 如何在主函数中访问类成员函数的数据成员?

XX.标题

XX.CPP

主程序

我希望在主函数中使用 AA 的值。

假设有一个带有类定义和成员函数定义的头文件以及一些公共数据成员说

AA。

现在在头文件的 cpp 文件中包含头文件的完整描述以及类中的函数定义。数据成员

AA

在成员函数中包含一些值。现在我想使用这个数据成员 AA

在主函数中。我怎样才能做到这一点。现在我刚刚在公共场合初始化:int AA 并且在函数中它给出了一些正在存储的整数值。现在我想在 main 函数中使用这个 AA。

0 投票
3 回答
238 浏览

c++ - 封装数据,因此 setter 是私有的,getter 是公共的

我想知道如何最好在 C++ 中创建一个数据实体,其中“setter”是私有的,“getter”是公共的。即实体的创建者应该能够设置数据,但用户/消费者/客户端只能获取数据。

让我们考虑实体 EntityX:

还有一个创建实体并将其返回给客户端的类方法:

在我看来,这使得 setter 是私有的,而 getter 是公共的,但是如果数据成员大于 5-10,这个例子是不切实际的......你将如何制作一个实体类/结构,使得 setter 是“私有的”并且“getter”是“public”,而不使构造函数接受所有数据成员变量。

提前致谢

0 投票
1 回答
264 浏览

c# - 可序列化的 C# 模型封装

我正在使用可序列化,但不能离开我的私人课程。

把这门课公之于众有什么问题。

我不明白这种封装,因为我不能这样使用它。

0 投票
1 回答
88 浏览

c++ - 初始数据成员值

我很惊讶地看到,在VS2013附带的Visual C++版本中,新创建的类的数据成员似乎会根据它们的类型自动初始化为0null 。这是新的 - 非常有用!- 我的经验中的行为。我以前在编写严肃的应用程序时只使用过VC++ 版本 4,而早在 1990 年代中期,初始值就被明确声明为未定义/随机。

这可能是使用调试库的一些有用属性,还是可以一直依赖空初始化?

根据要求,一些示例代码 - 恐怕没什么令人兴奋的:

正如我所说的非常基本,我并没有说明所有代码。但是,在到达“Initialize_Data”中的断点时——即在创建类时立即执行任何其他操作之前——所有数据成员在 Watch 中显示为 0 或 null。这是相当令人惊讶的!

0 投票
2 回答
467 浏览

c++ - 使用成员函数初始化数据成员

我今天学习了 C++ 11 非常有用的新特性,它允许在类声明中直接初始化数据成员:

是否可以使用新的 v11 规则更进一步,并使用成员函数的输出初始化数据成员:

这会导致问题吗?

0 投票
1 回答
150 浏览

php - 使用 get_object_vars() 更新类的所有公共变量的值

我有 100 名公众成员上课。如何以自动方式更新它们,即不指定它们的名称。我已经尝试过了,我得到了变量,但所做的更改并没有反映在实际对象上。请指教。

它将“c”的值打印为 2 而不是 9

0 投票
4 回答
1912 浏览

c++ - 非静态数据成员初始化器 C++

不知道为什么这不起作用。

0 投票
0 回答
174 浏览

c++ - 使用带有 boost::thread 数据成员的类的子类时出错

我创建了以下类

和子类

主要是我尝试为每个对象创建一个对象

为什么我可以创建 Messaging 对象,但 SportMessaging 对象失败?

我环顾四周,怀疑它可能与具有类似 boost::thread_group 的私有复制构造函数的 boost::thread 相关(关于在类中使用 boost::thread_group 的 stackoverflow 帖子)。

然而,似乎两者Messaging("sports message 3")都会SportMessaging("another sports message",4)调用它们的复制构造函数,然后调用每个非静态成员的复制构造函数(即包括尝试调用 boost::thread 的复制构造函数)。最后一句中的想法与 'SportMessaging anotherSportMessagingObject = SportMessaging("another sports message",4);' 不起作用,'Messaging aMessObj = Messaging("sports message 3");` 有效。

0 投票
1 回答
72 浏览

python - 我应该如何跟踪新时钟对象的开始时间?

我正在编写一个时钟对象,该对象可用于对程序中的事件进行计时,然后报告其各种时间,例如它的运行时间、开始和停止时间等。我也写了一个时钟对象,它跟踪整个程序中使用的各种时钟实例,并在打印输出中总结所有时钟的详细信息。

我已经让时钟对象工作了,但是我很难看到如何在我当前的实现中跟踪它的开始时间。这是因为它重置了开始时间的内部记录,以便正确地将时间添加到其内部累加器。我将不胜感激有关使事情正常工作的任何指导。

代码如下。我已经在时钟对象上包含了代码等等,以便清楚我想要实现的目标,并且建议的解决方案不会删除关键功能(我已经尽可能地减少了)。

运行时的示例打印输出如下:

说明问题的关键是clock beta start time: none. 时钟“测试版”应该2014-12-28T060945Z在那个时候报告。

0 投票
1 回答
73 浏览

c++ - 强制安全使用包含引用或原始指针的类

假设我们有一个如下所示的类。

该类的设计使得唯一合理的用途是当至少一个其他实体拥有所lo_引用对象的所有权时。如果客户端代码适当地使用该类,则无需DoStuffWithRef拥有LargeObject.

如果类被滥用,有没有办法强制执行这种用法或发出错误信号?除了记录DoStuffWithRef?

例如,自动存储DoStuffWithRef可能指的是自动存储LargeObject

这是我想到的主要用途,尽管在其他可能的情况下可以保证其他人拥有所有权。

问题是客户端代码很可能会创建一个DoStuffWithRef以悬空引用结束的实例。如果没有其他人拥有 aLargeObject所指的 a 的所有权,那么当试图访问DoStuffWithRef时就会出现混乱。更糟糕的是,只有在犯错很久之后才会出现混乱。DoStuffWithRefLargeObject

过去出现这种情况时,我使用 aboost::shared_ptr<>而不是引用(这是在 C++03 中)。这并不能恰当地表达类的语义。前提是DoStuffWithRef不需要所有权——它的目的是作用于他人拥有的对象,如果没有其他人拥有该对象,那么提供的功能DoStuffWithRef就没有意义了。授予所有权DoStuffWithRef具有不必要的开销并强制共享所有权语义。weak_ptr<>也会有错误的语义,因为我们不应该在运行时询问指针是否有效。

我从来没有在代码的性能敏感部分或共享所有权是一个重大负担的情况下出现这种情况,所以它并不重要,但我希望我知道一种在 C++ 中准确表达这一点的方法。成本很小,但它们也是不必要的。更重要的是,ashared_ptr<>会隐藏对类的不正确使用。如果DoStuffWithRef修改为使用 a 的 ashared_ptr<>是 a 的唯一剩余所有者LargeObject,则在短期内避免了悬空引用,但客户端代码最终处于未知领域。