C++ 将新运算符与对象的非默认构造函数一起使用

C++ 将新运算符与对象的非默认构造函数一起使用,c++,C++,我想: classname* p = new classname(parameter1, parameter2, ...); 创建一个指针,指向使用非默认构造函数初始化的对象,该构造函数的签名为:classnameparameter1,parameter2 谢谢 是的,没错 是的,没错 我自己写得再好不过了——不过记住在完成后删除它,除非你想让堆不开心 我自己写得再好不过了-不过记住在完成后删除它,除非你想让堆不开心 是的,会的。这个程序说明了这个概念 #include <string

我想:

classname* p = new classname(parameter1, parameter2, ...); 
创建一个指针,指向使用非默认构造函数初始化的对象,该构造函数的签名为:classnameparameter1,parameter2

谢谢

是的,没错

是的,没错


我自己写得再好不过了——不过记住在完成后删除它,除非你想让堆不开心

我自己写得再好不过了-不过记住在完成后删除它,除非你想让堆不开心

是的,会的。这个程序说明了这个概念

#include <string>
#include <iostream>

class Foo
{
private:
    std::string name;
public:
    Foo() : name("default"){}
    Foo(std::string Name): name(Name) {}

    void Print() { std::cout << name << std::endl; }
};

int main ()
{
    Foo* foo = new Foo();
    foo->Print();
    delete foo;

    foo = new Foo("special");
    foo->Print();
    delete foo;
}

是的,会的。这个程序说明了这个概念

#include <string>
#include <iostream>

class Foo
{
private:
    std::string name;
public:
    Foo() : name("default"){}
    Foo(std::string Name): name(Name) {}

    void Print() { std::cout << name << std::endl; }
};

int main ()
{
    Foo* foo = new Foo();
    foo->Print();
    delete foo;

    foo = new Foo("special");
    foo->Print();
    delete foo;
}

是的。但是我可以知道你是怎么想到这个问题的吗?有错误吗?

有。但是我可以知道你是怎么想到这个问题的吗?你有错误吗?

我不能用超过30个字符回答这个问题。是的,是什么阻止了你的尝试?谢谢!基本问题,我知道,但我不确定D@KerrekSB我确实试过了,但是我的代码中有一个seg错误,我想这个对象可能还没有初始化。查过谷歌找不到,所以我想在这里问一下。再次感谢!我不能用超过30个字符来回答这个问题。是的,是什么阻止了你的尝试?谢谢!基本问题,我知道,但我不确定D@KerrekSB我确实试过了,但是我的代码中有一个seg错误,我想这个对象可能还没有初始化。查过谷歌找不到,所以我想在这里问一下。再次感谢!行。毕竟,我讨厌让这堆人不高兴Pindeded,一个不快乐的堆=一个不快乐的程序员就可以了。毕竟,我讨厌让这堆人不高兴Pindeded,一个不快乐的堆=一个不快乐的程序感谢您编写一个程序来说明这个概念。你真厉害感谢您编写一个程序来说明这个概念。你真厉害D