在另一个成员中动态添加类成员
Add class member dynamically inside another member
我是C 的新手,我只是在尝试它,所以我正在浏览一本关于C 的练习书,我发现了一个有趣的问题,您必须使用课程。我想出了一个解决方案,但是我的解决方案是写入的,就像我在JavaScript中写的那样。因此,我开始在C 中编写它,但是我不知道是否可能,如果是,如何在同一类的成员函数中动态创建类成员作为另一个类的对象。在JavaScript,我可以使用构造函数进行此操作:
function AConstructor() {
this.method = function() {
this.property = new OtherConstructor()
}
}
这在C ?
是的,但是它不会是Actuall方法,std::function<void()>
是一个包含()
运算符的对象。btw请记住,this
是指指针,而不是参考,因此您可以访问它成员槽->
,而不是.
操作员。
#include <iostream>
#include <functional>
class C {
private:
std::function<void()> default_method = []() { std::cout << "X"; };
public:
std::function<void()> method = default_method;
void change_method() {
method = []() { std::cout << "Y"; };
}
};
int main() {
C object;
object.method();
object.change_method();
object.method();
return 0;
}
它将打印XY
。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 添加静态constexpr成员是否会更改结构/类的内存映射
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 将私有数据成员添加到野牛生成的类中
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 如何添加依赖于类本身的模板成员变量
- '将成员函数仅添加到类的专用模板
- QT:添加到QMenu后,谁是QActionGroup成员的父级
- 添加字符串类型的类成员会导致调用基类函数而不是子函数
- C 模板将某些类型的成员添加到类中
- 如果在C++中将成员添加到类中,则会导致编译时错误的技术
- 正在将非托管/非托管成员添加到托管类
- 为什么为结构的多个数据成员而不是单个成员添加填充
- 为什么没有将虚拟静态成员添加为C++的一个功能
- C++继承,将成员添加到派生类并重新定义构造函数
- 如何将类成员添加到向量中并正确使用它
- 如何将托管值类型成员添加到非托管类
- 为一个c++ vector成员添加一个标志
- 在不破坏旧代码的情况下,将成员添加到现有结构中
- 成员变量不会保存从函数成员添加到它的值