你需要的是这样的内容吗:
classname* p = new classname(parameter1, parameter2, ...);
创建一个指向使用非默认构造函数初始化的对象的指针,签名为:
classname(parameter1, parameter2, ...)
?谢谢!你需要的是这样的内容吗:
classname* p = new classname(parameter1, parameter2, ...);
classname(parameter1, 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;
}
default
special
我自己也说不出更好的话了 - 记得在使用完后删除它,除非你想让堆不开心!