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

0 投票
3 回答
5844 浏览

c++ - 具有引用数据成员的类的默认构造函数?

我有一个类MyClass,我需要在默认构造函数中std::array创建一个。std::vector但是,这个类有一个数据成员,它是一个引用(类型Something),它也需要在构造函数中初始化,我不能在默认构造函数中这样做。

我应该如何解决这个问题?

0 投票
0 回答
62 浏览

c++ - 类成员函数不会返回

我有以下代码:

BOOK 只是一个带有一些成员变量的结构。TABLE 是一个结构模板,它的工作方式类似于 STL 向量(我只是不允许使用向量,所以必须编写我自己的模板,目前它使用的是静态数组T ar[100])。

问题是我收到了该书已添加的消息,并且 show_item 函数打印了所有数据,但我没有收到“返回”消息。

我尝试设置断点以使show_table函数到达结尾},但程序永远不会收到“返回”消息。

这段代码可能有什么问题?我将 32 位 QTCreator 与 MinGW 一起使用。如果有帮助的话,我的操作系统是 64 位 Win8.1...

0 投票
0 回答
284 浏览

c# - 使用 C# 类成员函数作为 C++ 回调

我使用 PortAudioSharp 作为 PortAudio (PA) 的 C# 包装器。但是这个问题更笼统,所以为了清楚起见,我将略去代码。
PA 有一个回调,当它需要新数据时会调用它。所以打开一个流将使用这个函数:

我现在有一个类,它运行一个解码器,填充该类中的缓冲区。我希望 PA 从该类中回调一个函数以获取新数据。代码是这样的:

到目前为止,这似乎有效。问题:有时当有超过 1 个流(1 个暂停,1 个正在运行)时,会调用错误流的回调。我认为,代表可能是问题所在。

所以问题:
1)以上是否正确?我可以将成员函数作为委托传递给 C++ 吗?
2)这是如何工作的?如果它是 C++ 而不是 C#,则必须创建一个 C 绕行函数,它将 userData 指针转换为一个类,然后调用类回调(例如 ((CFoo*) userData)->_ProcessNewData) 运行时是否使用一些“魔术”所以调用来自正确实例的函数?

0 投票
0 回答
124 浏览

spring - 访问类模型的属性名称而不是spring mvc中的值

我正在使用 Spring 2.5 框架并停留在一点。例如,我有一个名为 Person 的类(模型)。

我需要在 Controller 中访问 Person 类的属性名称。例如,我想获得

不是名称的值。也就是说,我不想以信息约翰为名字,我想以名字为词。如何访问控制器中的属性名称,而不是值提前谢谢

0 投票
1 回答
120 浏览

java - 为什么我无法访问会员?

我定义了以下类:

在类解决方案中,我定义了两个内部类:

问题是我无法访问对象yx字段,n而且root我不明白为什么?编辑:我无法分离 Node 类,因为我正在为 Top Coder 编写它,我只需要提交一个类;字段 x 和 y 设置为公共,但我仍然无法访问它们。

0 投票
2 回答
27 浏览

python - 可以是类型或工厂函数的类成员的不同行为

每当我定义一个其实例创建其他类的对象的类时,我喜欢将那些其他对象的类型定义为类成员:

这个想法是允许潜在的子类轻松覆盖它。

我刚刚发现这个习惯有问题,当我使用的“类型”不是真正的类型,而是工厂函数时。例如,RLock令人困惑的是不是一个类:

因此以同样的方式使用它是不好的:

这里的问题是,因为RLock是一个函数,所以self.LOCK_TYPE绑定到self,导致绑定方法,从而导致错误。


以下是使用函数而不是类时出现问题的快速演示(对于比RLock上面更简单的情况):


有人对这个问题有很好的解决方案吗?我定义这些班级成员的习惯从根本上是错误的吗?

我想我可以用工厂方法替换它。那会是更好的方法吗?

0 投票
1 回答
1426 浏览

c++ - Valgrind 在使用字符串类型成员时识别内存泄漏(使用 nvcc 编译)

我不确定这是否是错误但是当我在结构或类中使用字符串类型的成员时,valgrind 会识别出内存泄漏。我试图根据自己的应用程序构建一个简单的代码,如果它仍然很大,我很抱歉......

编译:

valgrind 的分析如下:

当我将 C++字符串成员更改为普通的 C char*成员时,会出现“这是一个错误”的疑惑。只需要更改上面编写的代码的这一部分:

请注意,我的代码中仍然使用字符串,但现在没有声明任何字符串成员。这样,valgrind 就不再抱怨了:

有人对此有见解吗?我的意思是,这是一个应该报告的错误,还是我的字符串版本代码中实际上缺少的东西?

0 投票
1 回答
815 浏览

c++ - 在没有任何构造函数的类的情况下,在 C++11 中自动生成类成员函数

在 C++11 中,我定义了以下一般形式的结构:

MyStruct由于默认构造函数被标记为已删除,因此无法创建任何类型的对象。甚至方法myFunc也不能创建类的实例。尽管如此,该结构仍然可以使用,MyStruct::myFunc并且public可以从外部调用。

我现在的问题是:由于不可能创建任何类型MyStruct的对象,编译器是否会费心为复制构造函数、地址运算符或析构函数创建代码?

顺便说一句:就我的实际代码而言,我确实必须根据静态类成员函数来实现功能,因为我必须利用部分模板类特化来模拟部分模板函数特化。所以我想知道如何才能让班级尽可能精简。

编辑:根据@Praetorian 的评论和回答,删除了关于自动生成地址运算符的注释。

0 投票
3 回答
13042 浏览

arrays - 数组作为类成员

我正在为传出消息设计一个动态缓冲区。数据结构采用具有字节数组缓冲区作为成员的节点队列的形式。不幸的是,在 VBA 中,数组不能是类的公共成员。

例如,这是一个禁忌,不会编译:

您将收到以下错误:“常量、固定长度字符串、数组、用户定义类型和 Declare 语句不允许作为对象模块的公共成员”

好吧,没关系,我只需将其设为具有公共属性访问器的私有成员...

...然后在模块中进行一些测试以确保其正常工作:

测试#1 工作正常,但测试 #2 中断,Buffer突出显示,并且错误消息是“参数数量错误或属性分配无效”

测试 #2 现在有效!GSerg指出,为了Property Get Buffer()正确调用并引用缓冲区中的特定索引, 需要两组括号:oBuffer.Buffer()(2)

测试#3 失败 - 原始值 3 打印到立即窗口。GSerg 在他的评论中指出,Public Property Get Buffer()只返回一个副本而不是实际的类成员数组,因此修改会丢失。

如何解决第三个问题,使类成员数组按预期工作?

(我应该澄清一般问题是“VBA 不允许数组成为类的公共成员。我怎样才能解决这个问题,让一个类的数组成员表现得好像它用于所有实际目的,包括:# 1 分配数组,#2 从数组中获取值,#3 在数组中分配值,#4 直接在调用中使用数组CopyMemory(#3 和#4 几乎等效)?)”

0 投票
5 回答
107 浏览

java - 两个类成员声明和初始化的区别

以下类型的类成员声明和初始化之间的确切区别是什么?

选项1:

选项 2: