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

0 投票
1 回答
1514 浏览

c++ - 我可以欺骗对私有 C++ 类成员变量的访问吗?

可能重复:
访问私有成员
是否可以访问类的私有成员?

有没有一种好的(是的,我知道这很丑陋)方法来破解类的私有数据成员?

一种蛮力方法是复制头文件并在我的副本中将私有更改为公共。但是有没有更好的方法,说做

或者是其他东西?

0 投票
1 回答
271 浏览

c++ - 在 C++ 成员函数中引用指针

我正在编写一个使用成员变量指针作为迭代器的成员函数。但是,为了便于阅读,我想在函数中引用指针。像这样:

这基本上就是我想要的,其中 this->getNextIter 是一个 BTreeNode*。但是我得到了错误:

这种事情的适当语法是什么?

干杯,

里斯

0 投票
7 回答
1049 浏览

c++ - 总是返回成员变量 getter 的引用是个好主意吗?

如果我有一个包含许多int,floatenum成员变量的类,将它们作为引用而不是副本返回是否被认为是有效和/或良好的做法,并返回不应进行更改的常量引用?还是有理由我应该将它们作为副本退回?

0 投票
3 回答
67 浏览

class-design - 是否应该在基类和派生类之间共享特定比例的成员?

我目前正在为我的课程作业编写的应用程序设计类,我有两个类听起来好像它们应该是基派生类对,并且确实共享两个成员变量,我的问题是它们每个都有七个成员变量并且没有操作。

这些类的结构的原因是我正在构建一个 RSS 阅读器,并且我打算让这两个类保存提要上的数据。第一个将保存提要本身的数据,例如源 url、rss.xml 文件在本地存储中的位置、提要的最后更新时间等。第二个将保存有关包含在提要中的文章的信息提要,例如发布日期/时间和基于发布日期的整数索引,用于按时间顺序对文章进行排序。

上面的代码不完整,我目前只识别变量和函数,私有/公共位一旦完成就会出现。从上面的代码可以看出,唯一共享的两个变量是标题描述。

我不确定是否值得将它们设为实体基对并仅停用五个不相关的变量,是否将它们完全分开的类更有效,或者这是否完全是情境问题,并且可以争论无论哪种方式。我担心的是代码可能难以维护和扩展,但一种方法或另一种方法可能存在固有的执行开销。对此的任何想法和建议将不胜感激。

0 投票
3 回答
283 浏览

python - 在 python 中设计类时,推荐的放置成员变量的方法在哪里?

我正在尝试熟悉 python 中的类。在 C++ 中,关于成员变量,类的结构对我来说似乎很简单。您只需在类范围的开头或结尾(根据需要作为公共或私有)声明它们,并根据需要使用它们。

这在python中是如何处理的?

现在我倾向于编写类并在需要的地方声明变量:

我知道,一个类也可以在没有成员变量的情况下定义,并且可以动态添加。

将所有这些放在一起让我感到困惑,因为代码变得更难阅读。

所以我的问题是,关于python中的成员变量,推荐的设计类的方法是什么?


编辑:

我问的方式是误导。对于那个很抱歉!不过,这些答案帮助我理解了其他事情。;-)

我将重新表述:我并不是在询问如何解决我对类内部定义的变量和编码时动态添加的变量的困惑。

我想要解决的是我对 python 类的设计以及成员变量的困惑。我的意思是,最好将它们放在哪里,让潜在的代码读者无需搜索即可查看所有内容。这就是我提到 C++ 中的类的原因。您将所有成员变量放在一个位置,如果您想知道哪些数据存储在类中,您可以查看类的开头或结尾,您将获得所需的所有信息。

在我上面写的例子中,你看,standardis above __init__(self, ...)firstand secondare inside of__init(self,...)thirdis inside do_something(),如果类很大,它可能低于所有其他方法。所以你必须逐行搜索它,或者永远不会意识到它的存在。

我希望我的问题现在能更好地提出。:-)

0 投票
3 回答
6222 浏览

c++ - 当它是类数据成员时如何调用指向成员函数的指针?

在上面的测试代码中,pfB. 调用它的语法规则是什么?它应该是直截了当的,但我没有得到一个合适的匹配。例如,如果我尝试obj.*pf(0,0);,那么我会得到:

0 投票
3 回答
203 浏览

c++ - 是否可以在我的模板类中有一个静态成员变量,而类的用户不必知道它?

我有一个模板化的容器类,类似于这个玩具代码:

这个类使用起来真的很方便——任何代码都可以只 #include "MyVector.h" 然后开始声明 MyVector 和 MyVector 类型的对象等等,这一切都只是工作(tm),不需要任何麻烦。

然而,让我感到困扰的一件事是 _defaultItem 成员变量的存在,它只是为了让 GetFirstItemWithDefault() 能够在容器为空时返回有效引用。反对意见是,如果我声明 N 个 MyVector 对象,这意味着 _defaultItem 的 N 个副本也将存在于 RAM 中 --- 即使它们都是相同的并且是只读的,因此实际上只需要其中一个过程,而不是每个 MyVector 一个。

因此,显而易见的解决方案是将 _defaultItem 设为静态 .... 但 AFAICT 会带来成本:如果我这样做,任何旧代码都不再可能简单地 #include "MyVector.h" 就可以了。 .. 现在用户必须确保在他的一个 .cpp 文件中声明该静态变量的存储,这是 (a) 令人头疼的问题,并且 (b) 意味着代码的用户必须意识到类的内部实现的细节。由于 _defaultItem 是一个私有成员变量,该类的用户不应该考虑它甚至意识到它的存在,更不用说他需要为它声明存储。(如果两段单独的代码都为它声明存储,每个都不知道对方做了同样的事情怎么办?这不会导致重复符号链接器错误吗?)

因此,我的问题是:有没有办法告诉 C++ 自动为这个静态成员变量提供一个唯一的存储(每个 MyVector 的实例化类型),以便 MyVector 的用户不必知道它?(请注意,对于 MyVector<...> 的所有可能实例化,它需要是自动的,而不仅仅是一些常见情况)

0 投票
6 回答
1674 浏览

c++ - 可以放弃简单类的 getter 和 setter 吗?

我正在制作一个非常简单的类来表示 3D 空间中的位置。

目前,我只是让用户直接访问和修改个人X,YZ值。换句话说,它们是公共成员变量。

这背后的原因是,因为NumericType是一个模板参数,我不能依赖有一种体面的方法来检查值的健全性。(我怎么知道用户不想用负值表示位置?)因此,添加 getter 或 setter 来使界面复杂化是没有意义的,直接访问应该因其简洁而受到青睐。

这是良好实践的一个好的例外吗?我的代码的(假设的)未来维护者会追捕我并打我的脸吗?

0 投票
1 回答
1786 浏览

c - 无法访问结构中的结构数组中的成员变量

我正在制作一个 C 程序,它需要访问结构中的结构数组。

定义如下所示

在主函数中,我想访问世界的tile[3][3]obj 的脸。

我将世界初始化为

但以下几行会出错

知道如何访问 obj 的脸吗?

0 投票
4 回答
4196 浏览

c++ - 声明一个接受构造函数参数的成员变量

'memberA' 的声明使用 g++ 编译器给了我一个编译错误:错误:'A::eOne' is not a type

我该如何克服呢?我是否只需要创建一个不带参数的默认构造函数?