如何在新通话中使用更多参数?

The*_*ask 3 c++ constructor operator-overloading

对不起,如果"新呼叫"不是C++ - 术语.如果不是,请告诉我什么是正确的术语.我是一个以C++开头的C程序员.我有struct A我想在new运算符中使用参数化器初始化它.像这样:

A* a = new A(foo, baa);

所以,我试着用它来定义函数: void* A::operator new(T a, T B) { ... }

但我得到一个编译器错误:

error: 'operator new' takes type size_t ('unsigned int') as first parameter
Run Code Online (Sandbox Code Playgroud)

另外,不确定它是否相关但是size_t已经定义了类型的重载参数的函数,如下所示:

void* A::operator new(size_t size) { ... }

Typ*_*eIA 5

你不需要为此重载operator new.你只需要一个构造函数:

class A
{
    public:
        A(FooType foo, BaaType baa);
};

A::A(FooType foo, BaaType baa)
{
    // initialize object here
}
Run Code Online (Sandbox Code Playgroud)

然后你可以写(假设你已经获得了foo类型的变量,FooType等等):

A *a = new A(foo, baa);
Run Code Online (Sandbox Code Playgroud)