问题标签 [member-pointers]
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++ 中将成员变量指针转换为泛型类型
我的应用程序中有类似的代码:
问题是 - MYSTERYTYPE 应该是什么?void* 和 int 都不起作用,尽管如果通过 printf 输出值 &A::b 就可以正常打印。
澄清:是的,&A::b 是在 C++ 下定义的。是的,我正在尝试将偏移量分配给班级成员。是的,我很棘手。
编辑:哦,我可以使用 offsetof()。不管怎么说,还是要谢谢你。
c++ - 在 C++ 中有 &func 或 class::func 的用途吗?
这似乎不一致。为什么我们使用 &Example::func 而不是 Example::func?Example::func 或 &exampleFunction 有没有用处?似乎我们不能引用一个函数,以便排除 Example::func。而且我想不出一种使用 &exampleFunction 的方法,因为 exampleFunction 已经返回了一个指针。
c++ - 返回相同类型的成员函数指针的成员函数指针
我想在 C++ 中声明一个成员函数指针,它返回相同的成员函数指针类型
这不起作用:
有人知道解决方案吗?
c++ - 嵌套数据成员指针 - 不可能?
以下简化的代码示例没有做任何有用的事情,只是对数据成员指针进行了两次后续分配。第一个赋值有效,第二个给出编译器错误。大概是因为它是嵌套成员。
问题是:真的不可能让一个成员指针指向一个嵌套成员,还是我错过了任何花哨的语法?
ATM 我正在通过使用字节偏移和大量强制转换来解决问题。但这很难看,我最好使用那些成员指针。
是的,我知道这个问题之前肯定出现过(就像几乎所有问题一样)。是的,我事先搜索过,但没有找到满意的答案。
谢谢你的时间。
c++ - 基类成员的指针类型
我对成员指针有疑问。以下代码无法同时使用 Oracle Solaris Studio 12.2 的 CC 和 cygwin GCC 4.3.4 进行编译,但适用于 Microsoft Visual C++ 2010:
在最后一行的下一行,上面提到的两个编译器都找不到匹配的Bar<B>::foo(int A::*)
. 我写了一个简单的测试来确认表达式的类型&B::x
实际上是int A::*
:
以下变通方法适用于 GCC(尚未使用 Oracle CC 测试),但由于含糊不清而在 VC++ 中失败:
我的问题:哪种行为是正确的?显然 VC++ 做了一个隐式向上转换 from int A::*
toint B::*
来满足对成员函数模板的调用,其他两个编译器不应该考虑做同样的事情吗?
c++ - 成员函数指针
如果 C++ FAQ Lite 中的以下内容为真:“函数名衰减为指向函数的指针”(因为数组名衰减为指向其第一个元素的指针);为什么我们必须包括&符号?
而不仅仅是:
在第二种情况下,Fred::f 是一个函数,可以衰减为指向该函数的指针。
我希望这个问题不是那么愚蠢。
c++ - 指向成员的指针的偏移量
在这种情况下,如何获取字段“m”的偏移量?我更喜欢使用 am 编译时表达式。
提前感谢您的帮助。此致
c++ - 我可以将成员数据指针分配给派生类型吗?
这可能最好用示例代码来展示。以下无法使用 g++ 编译:
我收到以下错误:invalid conversion from 'Derived Container::*' to Base Container::*'
。这是语言不允许的吗?这是编译器错误吗?我使用了错误的语法吗?
请帮忙!
关于我为什么要这样做的一些背景知识:我有几个成员数据片段,我想主要用作它们的派生类型,但我希望能够通过一些通用代码填充它们。数据将以任意顺序出现,并具有一个字符串标签,我将使用它来选择要填充的适当成员数据。我正计划创建一个std::map<std::string, Base Container::*>
通过通用接口将数据分配给每个成员的方法。我想避免有一个巨大的if else
结构来找到正确的成员数据。
c++ - 具有私有基数的函数成员指针
以下代码产生编译时错误:
“
base::print
” : 无法访问在类“base_der
”中声明的私有成员
但是,我已经public
在派生类中创建了成员。为什么这不起作用?