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

时间:2012-03-01 06:43:55

标签: c++

会是这样的:

classname* p = new classname(parameter1, parameter2, ...); 

创建一个指向使用带有签名的非默认构造函数初始化的对象的指针:classname(parameter1, parameter2, ...)

谢谢!

4 个答案:

答案 0 :(得分:3)

是的,这是正确的。



答案 1 :(得分:1)

自己不能把它变得更好 - 记得在完成它之后删除它,除非你想让堆不开心!

答案 2 :(得分:0)

是的,它会的。该计划说明了这一概念。

#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;
}

输出结果为:

default
special

答案 3 :(得分:0)

是的。但我可能知道这个问题是怎么回事的吗?你有一些错误吗?