问题标签 [member-variables]
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++ - 对象或引用的一部分
假设一个类 A 有一个成员变量(它是一个对象而不是一个引用)m。我自然会认为:当我定义一个对象'o1'时,表达式'o1.m'也是一个对象类型;当我定义一个引用“q1”时,表达式“q1.m”也是一个引用类型。
这个结论正确吗?我想知道 C++ 标准文档中是否有任何相关子句,如果它是真的(我已经搜索了它/它们已经多天了,但到目前为止几乎所有关于“作为类成员的引用”)?
c++ - 打印出未初始化的成员变量。有和没有默认构造函数
所以我有以下代码:
现在,如果我尝试运行它,我会收到关于使用未初始化变量的运行时错误。但是如果我添加一个默认构造函数(取消注释构造函数),它工作正常。它仍然打印出垃圾值,但打印时没有运行时错误。
为什么会有这种差异?默认构造函数不对 objID 做任何事情。我正在使用 Visual Studio 2013(禁用语言扩展)。
谢谢你。
c++ - 基类中的派生类实例
这是我试图理解的代码。它没有特定用途。我只是想了解会发生什么。
使用 VS2013 我收到错误“derivedClass: class has no constructors”,我认为这不是正确的错误。
我首先使用的是derivedClass 实例,而不是指针。这给了我一个关于分号的奇怪错误。然后我看到了这篇文章,其中接受的答案是有一个指针,而不是一个实例。
这些是我的问题:
- 为什么编译器抱怨没有构造函数。该类显然具有构造函数。
- 这将如何工作?当我们创建 dervedClass 的实例时,其中有一个 baseClass 部分。而这个 baseClass 部分里面有一个derivedClass,以此类推。这是递归的。我会假设如果它有效,它会导致分段错误或类似的东西。我是否正确地假设这将是递归的(如果它有效)?
干杯。
c++ - 如何从 C++ 中的命令行参数分配成员变量?
有没有办法从命令行参数分配一个类成员,以便该类的所有对象都具有该值(默认情况下)?默认情况下我想要它,因为成员函数在 Foo 类中创建了一个新对象,并且我不想制作Var
函数参数。如果可能的话,我想避免使用全局变量。我希望我的代码执行下面的代码,但不使用全局变量。
富.h:
Foo.cpp:
主.cpp:
c# - 如何重写 ToString() 方法以获取 Object 的数据成员
我有一个返回对象的方法。如果我返回一个对象,那么它将给出类的完全限定名称。但我想返回对象的数据成员。
我重写了ToString()
获取detail
对象数据成员的方法。但它不起作用。我怎样才能做到这一点?
c++ - 对象作为 C++ 类中的成员变量
我想知道将对象实例作为另一个类的成员变量处理的最佳实践是什么。在阅读了不同的帖子之后,似乎应该避免将对象引用作为成员变量,但我不确定使用指针是否是一个好的解决方案。另一种可能性是拥有const
引用作为类构造函数的参数,然后使用复制构造函数来初始化成员变量。
- 处理这种情况的经验法则是什么?
- 怎么用
share_ptr
用作成员变量怎么样 - 如果成员变量引用抽象类怎么办?在这种情况下,还有其他替代指针或引用的方法吗?
编辑:
由于问题的答案实际上取决于上下文,因此我将在类成员引用抽象类的情况下指定它。例如,考虑以下实现策略模式的代码:
由于AsbtractStrategy
具有纯虚函数,因此将其作为成员的唯一方法似乎Client
是使用指针或引用。有更好的解决方案吗?
garbage-collection - java中的Member Variable是GC root吗?
我看到很多关于什么是 gc root 的解释。我知道局部变量和参数是 gc root。但是成员变量不是 gc root?如果我在类正文中输入代码
所以,p不是本地变量而是成员变量。如果p不是GC根,它可能是集合。并且在sayHello方法中会有空点异常。
arrays - 通过读取分隔文本文件填充结构变量数组
我有一个名为 games.txt 的文本文件,其中包含许多计算机游戏比赛的详细信息。每条线代表:
以下是 3 行的示例(总共 150 行):
我想将它们分配给一个结构数组,其中每个元素都有 6 个使用 StreamReader 的成员变量。这是结构变量:
我知道使用逗号作为分隔符,我可以将每个变量记录为数组中的不同元素:
这将导致以这种方式分配每个元素:
ETC..
有没有办法可以直接将所有成员变量分配给每个元素?就像每个逗号分隔一个成员变量一样,新行意味着一个新元素?不幸的是,我不熟悉语法/命令,所以我不知道如何解决这个问题。
请注意,我无法对任何内容进行硬编码,因为该应用程序旨在从 .txt 中获取所有数据。
c++ - 在 C++ 中跳过一些成员变量初始化的优缺点是什么?
考虑以下示例,
类.h
类.cpp
那么现在,如果我跳过构造函数中的初始化有什么区别y
?有什么缺点以及它如何影响代码的其余部分?这是编码的好方法吗?我所知道的是,无论是否初始化,或者即使两者都没有(默认构造函数),构造函数都会创建一个对象,并且构造函数用于创建通用对象x
。y
c - 如何访问另一个结构中的结构变量?
我typedef struct
在头文件中有两个。
我不知道如何访问PlayerFallStruct playerFall
. 如果我使用 ((PlayerFallStruct*) packetClient->playerFall)->fallLevel = 0;
编译器抛出错误:
Client.c:46:4: 错误:无法转换为指针类型 ((PlayerFallStruct*) packetClient->playerFall)->fallLevel = 0;
为什么?哪里有问题?如何访问我的stuct
?