gpt4 book ai didi

c++ - 将构造函数作为回调参数或返回值传递

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:07 24 4
gpt4 key购买 nike

基本上我要做的是创建类工厂:

class SomeClass {
// Returns subclass of SomeClass by given name, or nullptr
static SomeClass* childFromString(const std::string&);
}

我将使用 if...else 找到一个实际的子类,大约有 5 个。但是为了推迟实例化,我想返回构造函数而不是引用:

class SomeClass {
// This is an attempt to define "returns constructor of SomeClass"
static (SomeClass)(int) childFromString(const std::string&);
}

将用作:

SomeClass* = new (SomeClass::childFromString("Child"))(someNumber);

这在 C++ 中看起来很奇怪,但在 javascript 或 Java 中是合法的。而且我不认为它需要反射才能工作,构造函数只是一个函数,对吧?

那么再一次,如何将构造函数作为参数或返回值传递?

最佳答案

没有办法调用构造函数,或者返回它,或者用它做一些事情,因为

Constructors do not have names.

您可以在函数中构造对象,也可以返回一些指向某个创建者的函数指针。

关于c++ - 将构造函数作为回调参数或返回值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34808033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com