问题标签 [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.
c++ - 为什么不能使用 '( )' 为类的非静态数据成员赋予默认值?
我只是在浏览 C++ 中的基本 OOP 概念,并遇到了以下问题:
编译时出现以下错误line1
(在 gcc 和 MSVC++ 中都试过),
我知道如何为 a 分配默认值non-static member
(可以从 C++11 开始以不同的方式完成),但我不明白为什么只有这种默认值初始化是不可能的,因为做同样的初始化(对于正常变量)其他任何地方都是有效的。
这种限制的原因可能是什么?
编辑:
从提供的链接和答案来看,这是因为“在某些情况下它可能读作函数声明。由于这种歧义,它是不允许的。”
但考虑以下情况:
这也是一个类似的情况,int object(B)
可以理解为一个以函数object
为B object
参数并带有int
返回类型的函数。我试过了gcc
,MSVC++
并且对象被视为int variable
. 为什么在这种情况下不受限制?
c++ - What happens to uninitialized class members in c++?
What happens to uninitialized class members in c++? If I have to do this, what should I take care of?
c# - 如何使用 Visual Studio 2012 C# 中的数据/值成员从组合框执行搜索操作
我在这种编程方面处于初学者水平,所以我相信你们中的某些人会知道如何解决我遇到的这个问题。
我在 Visual Studio 中有一个与 Oracle Database 11g Express 连接的小项目,我想对数据库中的特定表执行搜索操作,并在我的 Visual Studio 项目中以这种形式显示它。因此,我有两个组合框,其中填充了显示成员而不是数据成员。数据成员通常是表中的外键,例如 ID 等,在这些组合框中显示的显示成员通常是姓名和姓氏,当然与我之前提到的那些 ID 相关联。
所以我想选择这些显示成员并在它们之上搜索特定 at 的所有数据。
这是我表单中选择按钮的查询:
我有这张表,其中ime_pacijenta
是名字,prezime_pacijenta
是姓氏,PRETRAGA
是这个搜索按钮:
当我从组合框中选择一项时,它应该只写出那一条记录。相反,它向我展示了另一张与这张唱片无关的唱片。当我从组合框中选择任何其他值时也会发生这种情况:
就是这样,我感谢任何回复!
c++ - 访问其成员之一时是否存在指向基类子对象的隐式指针?
如果我们有这个代码:
有人告诉我, 的成员Base
将被继承,Derived
而这些继承的成员Derived
实际上是在一个基类子对象中Base
(但这个子对象是未命名的);的子对象Base
在 Derived 中创建,其中包含继承的成员。因此,当访问类中的成员时,除非您显式执行某些操作,否则会隐式调用 this 指针,但是在访问继承对象时是否还会调用隐式指针(或任何东西)?就像,如果我们在byanint
的实例中访问,这实际上会是什么样子或者它是如何工作的?Derived
derivedInstance->anint
derivedInstance->this->somethingToBaseObjectThatHoldsTheMembers->anint
java - 如何通过泛型对象访问类的字段变量?
我一直在测试 Java 中的泛型编程。
这是我的代码片段:
这是在类型参数中扩展的接口Style
:
此接口由另一个名为 的类实现Ford
,其中getMake()
方法的实现如下:
在我的驱动程序类Test
中,我正在测试所有这些东西,如下所示:
现在,在我的理解中,应该能够通过使用接口来访问通用对象的字段变量和方法,在本例中就是我的Style
接口。并且编译器在 IDE 中对此没有任何问题。该程序应该正在访问该getMake()
方法并打印出:
2015 GRAY FORD FUSION
但是,控制台显示:
Exception in thread "main" java.lang.NullPointerException
at Vehicle.<init>(Vehicle.java:32)
at Test.main(Driver.java:16)
它指向我拥有的那条线this.brand = make.getMake();
那么这里到底发生了什么?我究竟做错了什么?
编辑:这个被标记为重复的问题并没有解决我的特殊情况。虽然这里的错误是 a NullPointerException
,但它与那个旧问题有很大不同。
这是一个与我的问题相同的问题。如果该问题的解决方案是有效的,那么我应该能够完成我一直在尝试做的事情。
c++ - 我应该如何将对象传递给类以检查冲突?
我正在使用 SFML 库在 C++ 中制作一个 Breakout 游戏,我有一个“桨”类和一个“球”类,它们都在“游戏”类中更新和渲染,它使用来自“窗口”类。
我的问题是,为了确定 Ball 对象是否与 Paddle 对象发生碰撞,我显然需要访问 Paddle 对象的 x/y 位置数据成员。我正在为每个对象使用更新(或刻度)函数,我宁愿不只是将对 Paddle 对象的引用传递给 Ball 的更新函数。
实现我想要的功能的普遍接受的方法是什么?
这是我的球头:
这是我的游戏更新功能:
c++ - 映射类的数据成员
我正在尝试设计一种数据结构,它可以通过存储一些关于其成员的额外数据来增强/补充现有的数据结构。
假设我们有:
我们希望有一个与之关联的 GUI 组件,因此数据成员具有相应的 GUI 元素。我想将成员映射到各自的组件。就像是
我没有任何限制,但我希望结果可以轻松转换为原始类型。
我知道,我可以引入一个模板,例如GuiElementMember
保存原始数据和GuiElement
指针,并将类成员交换为装饰的对应对象,所以它看起来像:
但我想避免它,因为它完全改变了对数据成员的访问模式并使其膨胀。即它的结果是数据成员与指针交错,不容易去除。
理想情况下,可以写成GuiA
的派生类A
,或者写成 的组合A
和附加的东西。
我正在考虑类可以生成地图的模板之类的东西。我可以为每个组件编写一个自定义类,但我认为没有一种简单的方法来映射数据成员,所以在客户端它看起来像getGuiMember(GuiA::x)
. 指向数据成员的指针包含成员原始类型。我认为不可能有像“类型擦除的成员指针”这样可以用作MemberHandle
类型的东西。
我想到的唯一一件事是enum
每个组件的自定义,它将枚举数据成员并用作地图(或本例中的向量)的键类型,但这似乎是大量的信息复制和维护。
是否有一些允许映射数据成员的技术?
只要接口简单,我并不真正关心实现的复杂性。我欢迎提升或模板魔术。我也不关心额外数据访问的性能,它是额外的东西,但普通类的使用不应该受到影响,因此引入无法优化的间接性不太受欢迎。
编辑:请不要依赖 GUI 的东西,这是一个例子。我只关心为每个成员存储一些额外的数据,而不是与成员一起组成。
c++11 - 从 void 指针访问结构中的变量
我想知道是否有一种方法可以访问 astruct
所指向的数据成员void*
?我试图解释的内容有望在我的示例代码中更加明显:
我已经运行了这个精确的代码转换p
,*(int*)p
并且打印得很好,但是,使用上面的精确代码会导致编译错误。还没有找到一个完全完成这个任务的例子。是否可以在转换后访问它的数据成员struct
?为什么或者为什么不?如果是这样,如何?