我想做一些类似于 Python 的__getattribute()__的事情,但是在 C++ 中。感觉我应该使用某种指向成员的指针,但我真的不知道如何开始。 我想要做的事情的要点是定义一个 class,它包含指向相同 class 的其他实例的指针,以及各种数据成员。 然后我想要一个可以调用的方法来 ...
我想做一些类似于 Python 的__getattribute()__的事情,但是在 C++ 中。感觉我应该使用某种指向成员的指针,但我真的不知道如何开始。 我想要做的事情的要点是定义一个 class,它包含指向相同 class 的其他实例的指针,以及各种数据成员。 然后我想要一个可以调用的方法来 ...
是否可以创建一个动态数组来保存结构中每个变量的名称?typedef struct dataSave { uint8_t nb; bool state; uint16_t dataIRArray[512]; } dataSave_t; dataSave_t mysave; ...
在 C++ 中,我正在寻找标准的关键部分来解释我在该语言的两个指向成员的访问运算符.*和->*之间观察到的细微行为差异。 根据下面显示的我的测试程序,虽然->*似乎允许其右手表达式是任何类型,可隐式转换为pointer to member of S ,但.*不是这样。 使用 gcc 和 ...
有两个对象: Holder和Property 。 Holder包含Property作为字段。 我想从Property访问Holder 。 在一般情况下, Property的地址将是Holder的地址 + Property类型字段的偏移量。 但重要的是: Property不应该有任何字段(例如,我不 ...
当使用std::function调用非静态成员函数时,我们可以传递 object 指针或 object 引用作为第一个参数:struct Foo { void bar() const { std::cout << "Foo::bar called "<< std::e ...
我正在做一个项目,我需要参与 function 指针,更具体地说是指向成员函数的 function 指针。 我已经阅读了几乎所有相关问题,但是没有一个描述我的具体问题。 所以,我将尝试通过一个简单的例子来描述我的问题。 假设我有三个不同的 header 文件,它们具有不同的类,如下所示: foo1 ...
我想创建一个指向方法的指针数组,这样我就可以快速 select 调用一个基于 integer 的方法。但是我在语法上遇到了一些困难。 我现在拥有的是: 但我收到以下错误消息: ...
我正在研究 class 表示实用程序,它的工作方式与 Java 的Class class 类似。也就是说,一种可以模拟 class 反射的机制。#include <map> #include <stdexcept> #include <string> templ ...
我有 class 文件.h 文件.cpp 编译时出现错误 ...
Hy everyone, I am quite new with OOP in C++ [go easy on me:) ] and I am trying to build a class in which a class member function needs to be taken fr ...
当我获得成员函数的地址时,我无法将地址分配给 void*: 我知道这是因为成员函数为您提供了这些指向成员的奇怪指针,而不仅仅是表现得像一个普通函数,但我不明白为什么会这样。 是的,该函数有一个 this 指针的额外参数。 是的,该函数在相关对象的上下文之外并没有真正意义。 但最终,该函数仍然位 ...
谁能告诉我为什么分配给Class::*类型的数据成员指针的nullptr的内部表示对于 MSVC、clang 和 g++ 是 -1? 对于 64 位系统(size_t)1 << 63是最好的,因为如果你使用nullptr成员指针,你肯定会触及内核内存并发生崩溃,所以这将是一个很好的调试帮 ...
我遇到了这个,它指出: 成员function 指针不是指针。 指向非成员函数的指针,包括static个成员函数,都是指针。 上面的引用似乎暗示指向非静态成员 function 的指针不是指针。 同样,我在这里阅读: 成员指针是与普通指针不同的类型类别。 我的问题是以上引述在技术上(正式根据标准)是否 ...
我过去总是在cppinsights中复制和粘贴我的代码,以查看我的代码中哪里有对话是由编译器隐式执行的。 但是此站点上未显示指针到成员的标准转换。 当看到这个问题的答案时,我变得更加困惑: Downcasting pointer to member leads to undefined behavi ...
我在某处读到,派生 class 的指向成员的指针可以转换为其基数 class 的指向成员的指针。当我读到这篇文章时,我聪明的头脑开始想到许多例子并不断发明无限数量的可能性:这样的转换会导致未定义的行为吗? [expr.static.cast]/12 : “指向类型为 cv1 T 的 D 的成员的 ...
我想根据输入使用不同的函数来计算 output。但它说:(明显调用的括号前的表达式必须具有(指向-)function 类型) int (TestClass::* Gate_Func)(向量); <<==这是我发起的function。 然后在这里:Gate_Func = &T ...
我想让子类向其父类 class 注册回调,以便父类 class 的用户可以调用具有已知 function 签名的子类的方法。 但是我得到了这个编译器错误 这是一个 Repl,用一个简洁的例子来说明错误。 https://replit.com/@Carpetfizz/RudeSmoothCommen ...
鉴于此代码 我的目的是用模板参数替换将成员传递给函数的指针,但不能同时匹配成员类型和成员,我可以做类似的事情 但后来我必须调用 这很丑陋而且似乎没有必要 您对如何解决此问题或收集此类数据的更好方法有什么想法吗? 提前致谢 ...
我目前正在练习 ->* 运算符,目的是编写一个智能指针。 我已经了解了它的工作原理。 对于这个例子,我想在使用 operator->*() 时使用模板,因此我可以将成员函数用于各种返回和参数类型。 下面是我的目标的一个简单例子函子.h 记录卡.h 记录卡.cpp 现在问题出在我的主要。 ...
有一个function 它将 object 指针及其成员方法转换为 lambda 捕获它们,稍后可以仅使用方法的 arguments 调用它们。 它工作正常,除了一种情况,其中该方法是虚拟的并在派生的 class 中被覆盖,例如 makeCallback( &d, &Base:: ...