问题标签 [pointer-to-member]

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 投票
4 回答
694 浏览

c++ - 是否有指向成员特征的指针或类似的东西?

基于其他我的问题

考虑以下代码

看,我可以使用value_typeandsize作为模板参数。

现在我想对指向成员的指针做同样的事情:

但我得到错误。

如何使最后一行工作?或者如何得到类似的结果?

笔记。我知道它不起作用。不需要到 C++ 标准的链接。我需要解决方法。

0 投票
1 回答
302 浏览

c++ - 从成员函数模板化参数调用成员函数

鉴于以下我无法编译的代码。

我收到以下错误消息

我以为我在使用 .* 但我显然有问题。

如何调用成员函数?

我试过了

这些都没有奏效。

0 投票
7 回答
5447 浏览

c++ - 将指针传递给二维数组c ++

我有这个问题很长一段时间 - 我已经固定大小的 2D 数组作为类成员。

我想将指针传递给M外面的矩阵。这可能很简单,但我找不到等的正确&组合*

感谢帮助。

0 投票
3 回答
656 浏览

c++ - 具有模板分配的 C++ 指针成员函数与另一个类的成员函数

在另一个类中,我有一个 IShaderParams* 向量和我想发送到“send_to_shader”的函数。我正在尝试像这样分配这些函数的引用:

这是功能:

这是带有 IshaderParams* 的类:

当我使用 Visual Studio C++ Express 2008 编译项目时,我收到此错误:

错误 2 错误 C2440: '=' : 无法进行转换 'void (__thiscall TShader::* )(const D3DXVECTOR3 &,const std::string &)' a 'void (__thiscall TShaderParam::* )(const TParam &,const std::string &)' c:\users\isagoras\documents\mcv\afoc\shader.cpp 127

我可以做任务吗?不?我不知道怎么做 :-S 是的,我知道我可以用其他技术实现相同的目标,但我想知道我该怎么做..

0 投票
4 回答
282 浏览

c++ - 如何以不同方式访问结构成员

我想要一个结构token,其中包含位置、句子和段落信息的开始/结束对。我还希望以两种不同的方式访问成员:作为开始/结束对和单独访问。鉴于:

我可以编写一个函数,例如distance(),计算三个start/end对中的任何一个之间的距离,例如:

并称之为:

这将返回该pos对的距离。但我也可以通过&token::sentor&token::para并且它会做我想做的事。因此,功能是灵活的。

但是,现在我还想编写一个函数,比如说,它计算 all或 all the或 all the等max()的最大值。pos.startpos.endsent.start

如果我添加:

我可以编写如下函数:

并称之为:

但是,如上面的评论所示,我不想硬编码pos. 我希望灵活地访问startend中的任何一个possent或者para将作为参数传递给max().

我已经尝试了几件事来让它工作(尝试使用联合、匿名联合等),但我无法想出一个数据结构,它允许两种方式的灵活性,同时每个值只存储一次。

任何想法如何组织token结构以便我可以拥有我想要的东西?


试图澄清

给定整数对结构,我希望能够以两种不同的方式“切片”数据:

  1. 通过传递一个指向特定开始/结束对的成员的指针,以便被调用的函数在不知道哪对的情况下对任何对进行操作。调用者决定哪一对。
  2. 通过传递一个指向特定成员的指针int(即,任何 int对中的一个),以便被调用的函数对任何成员进行操作,int而不知道int所说int的来自哪对或哪对。调用者决定哪一int对。

后者的另一个例子是对 allpara.end或 all求和sent.start

另外,重要的是:对于上面的#2,我理想地希望只传递一个指向成员的指针以减轻调用者的负担。因此,我试图使用工会来解决问题。

对于#2,结构将被优化布局,如:

诀窍是拥有tokentoken2以某种方式覆盖 a union,但不清楚是否/如何做到这一点并满足可访问的要求。

0 投票
1 回答
1009 浏览

c++ - 如何创建指向可变成员的指针?

考虑以下代码:

编译器生成错误消息。问题是成员m是可变的,因此允许更改m。但是函数签名隐藏了可变声明。

如何 decalre 指向可变成员的指针以编译此代码?如果不可能,请链接到标准 C++。

0 投票
5 回答
16222 浏览

c++ - 在类中使用成员函数指针

给定一个示例类:

我在通过指针“*func(foo,bar)”调用成员函数的行出现编译器错误,说:“term 不计算为带 2 个参数的函数”。我究竟做错了什么?

0 投票
2 回答
207 浏览

c++ - 关于指向成员函数的指针与直接调用成员函数的使用(和有用性)

我是指向成员函数的新手,我想知道它们的优缺点。

具体来说,考虑一下:

如评论中所述,要触发回调 ( FireCallback),我需要对现有VariableContainer对象的一些引用,该对象应作为VariableContainer::AddVar (...). 现在:

  1. 我应该使用指向成员函数的指针吗?或者我应该直接调用Callback (...)(因为我有一个指向VariableContainer对象的指针)?
  2. 每种解决方案的优缺点是什么?

蒂亚,吉尔

0 投票
3 回答
331 浏览

c++ - 为什么 auto_ptr 不支持 op->*()

auto_ptr(以及shared_ptr)尽量使它们的使用尽可能透明;也就是说,理想情况下,您应该无法区分您使用的是 auto_ptr 还是指向对象的真实指针。考虑:

当您尝试通过指向成员的指针调用成员函数时,会有所不同,因为 auto_ptr 显然没有实现 op->*():

为什么 auto_ptr 中不支持 op->*() 以及如何实现它(我已经尝试了一段时间,但最终放弃了)。

0 投票
3 回答
467 浏览

c++ - 指向成员问题的指针

$4.11/2 个州 -

“指向cvB类型成员的指针”类型的右值,其中是类类型,可以转换为“指向cv类型 成员的指针”类型的右值,其中是 的派生类(第 10 条)。如果是 的不可访问(第 11 条)、模棱两可(10.2)或虚拟(10.1)基类 ,则需要此转换的程序格式错误。 TBD TDBBD

我的问题是为什么我们有B不能成为虚拟基类的限制D