问题标签 [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 投票
1 回答
123 浏览

c++ - 类成员访问:第 3.4.5 节,第 2 点:来自 N3290 草案 C++

类成员访问:第 3.4.5 节,第 2 点:

如果类成员访问 (5.2.5) 中的 id-expression 是 unqualified-id,并且对象表达式的类型是类类型 C,则在类 C 的范围内查找 unqualified-id。 对于伪析构函数调用(5.2.4),在完整的后缀表达式的上下文中查找非限定id。

在上面的语句中:对于伪析构函数调用(5.2.4),在完整的后缀表达式的上下文中查找非限定ID。

任何人都可以用程序来解释这一点(我知道伪析构函数调用)吗?

0 投票
5 回答
246 浏览

c++ - 模板访问作为参数传递的对象的不同成员

我有一个函数来计算在一组相邻点上定义的不同变量的梯度。算法总是相同的,但是根据计算的内容,访问邻居的不同成员数据,例如,当计算速度梯度时,使用Node::velocity,当计算应力梯度时,使用Node::stress。避免多次编写相同函数的最佳方法是什么?

我想到了几种可能性:

  1. 传递 lambda 函数 (c++0x) 或返回有问题的特定成员数据的可调用对象,称为

    减号是每次读取时的额外函数调用。

  2. 基于整数的模板函数说明正在计算的内容:

    它应该是高效的(希望编译器会在单个实例化中优化条件,去掉常量),但可读性和可维护性非常低。

有更好的主意吗?

0 投票
3 回答
2775 浏览

c++ - 在 C++ 中使用非默认构造函数初始化对象的成员类

我有一个特定的情况,我有一个对象,我想在其上使用 boost 随机数生成器,这导致了一个更大的问题,我似乎无法回答。这是我正在尝试生成的示例代码。

首先,我的标题:

现在我想做的是:

但这不起作用,因为它在标题中。我以为我可以使用 MyObject 的构造函数以某种方式调用各种子对象(分布、生成器)的构造函数,但我不知道如何。当调用 MyObject 的构造函数时,子对象的默认值构造函数已经被调用,我还没有发现他们有成员方法来重置这些属性......除此之外,这不是我感到困惑的地方。现在可能有太多事情发生了,我m 令人困惑的问题,但据我所知,我的问题归结为以下幼稚的示例:

我确信这是其他所有人的第二天性,但我找不到一篇文章讨论将对象的成员对象初始化为非默认构造函数值的最佳实践。

0 投票
3 回答
3341 浏览

java - 使用接口在2个java类之间进行通信

我有2个A类和B类。

class A implements Constants{

}

我不想在 B 类中有 A 类的实例。我该怎么做?如果我有一个在接口中设置变量的函数,那么两个类都必须实现这个函数。那会是错的吧?因为同一个函数的两个定义会发生冲突?

0 投票
1 回答
4144 浏览

c++ - 初始化非指针类成员

最近,我从广受好评的C++ FAQ中阅读了很多关于构造函数的内容。其中一个条目提到最好使用初始化列表,而不是在构造函数本身的代码块中初始化类成员。

这是因为编译器倾向于创建类成员的多个副本,而不是简单的一个副本。

例子

好的

坏的

它还指出的一件事(虽然这与构造函数有关,但它也与一般从非成员函数的对象的纯初始化有关)是通过以下方法初始化对象时:

你会的,我引用:"[declare] a non-member function that returns a Foo object"

(更多信息,请点击上面的链接)

问题

正因为如此,有以下几点是不明智的:

甚至这样:

由于分配这些对象的方式(即,这些是非指针的事实),这让我怀疑这些对象在开始时是否甚至需要初始化。如果他们这样做,这是正确的方法吗?或者,有没有更好的初始化方法?

这与问题有何关系

这与一般问题有关,因为 C++ 构造函数初始化背后的方法与使用构造函数初始化对象有关的方式,以及我不知道对象是否在堆栈上分配的事实 - 或者,所以我相信无论如何- (无论哪种方式,没有指针分配的对象)甚至首先需要初始化。

0 投票
6 回答
94 浏览

python - 令人费解的作用域行为

我似乎无法理解这里发生了什么:

输出是:

我原以为 inst1 中的列表对 inst2 中的列表一无所知但不知何故, myList的范围似乎超越了类的实例化。我觉得这非常令人不安和令人费解,还是我在这里遗漏了什么?

谢谢!

0 投票
4 回答
1758 浏览

c++ - 单个函数指针能否指向多个类的成员函数

以下是我的申请提出的要求。我有一个类 A,它接受一个函数指针说 cFunc,基本上在我的 A 实现中,我让它多次调用 cFunc。

cFunc 指针本身应根据应用程序指向不同的函数。因此,对于每个应用程序,我都创建了一个与 cFunc 具有相同函数定义的类,但是我不能将类的成员函数分配给这个指针

那么,如何使任何具有给定格式的成员函数的类都可以用于初始化类 A?

0 投票
7 回答
3341 浏览

java - 什么是“非静态方法”错误以及“this”如何工作?

我有几个非常基本的 Java 问题,我想一劳永逸地最终理解。我有以下一小段代码:

编译时,出现可怕的“无法从静态上下文引用非静态方法 swapMe(int,int)”错误。此外,我得到“a 已在 swapMe(int,int) 中定义”和“b 已在 swapMe(int,int) 中定义”

我最终需要通过我厚厚的头骨,是“非静态方法”错误,它是如何(为什么)引起的,以及如何避免它。

此外,我假设您可以使用“swapMe”方法中的“a”和“b”变量来做我试图做的事情。我以为我可以传入“a”和“b”,但也可以创建新变量“a”和“b”,并用“this”关键字引用它们。

我知道这是非常基本的,但是这两个“问题”是我对 Java 的两个主要症结,并且由于某种原因,似乎无法正确学习。

谢谢大家,花时间阅读本文。祝你有美好的一天。

0 投票
2 回答
659 浏览

c++ - 类成员作为对另一个的引用:赋值运算符崩溃

我有一个类Bar引用了它的一个成员(Bar::foo)的内部:

使用(没有任何特殊选项)进行编译g++,我在赋值运算符中遇到崩溃。为什么?

0 投票
3 回答
136 浏览

c++ - 声明数据成员之前成员函数中数据成员的可访问性

考虑这段代码:

数据成员 'i' 甚至在它被声明/定义之前就被使用了。这不应该是编译错误吗?(它编译得很好!!!)