C ++语法创建没有参数的对象

时间:2014-04-03 01:58:42

标签: c++ syntax instance

这个问题可能有点奇怪,我在网上找不到任何关于它的内容。这主要是关于c ++语法。

假设我有以下结构

struct foo
{
 void someMethod();
};

现在我们可以在这里创建一个这个结构的实例并使用它的方法

foo().someMethod();       // Works fine - Create instance on stack and called its method
foo* p = new foo(); // Works fine - p points to object on the heap

现在我的问题是 - 我在某些地方看到了以下

foo* p = new foo; //Not new foo(); // Its missing `()` at the end;

那么对于一个不需要构造函数中的参数的对象,以下两种方式声明foo之间的区别是什么

foo(); and foo;

如果两者没有区别,那么为什么我们不能这样做

foo.someMethod();

这只是一个我很好奇的问题。

1 个答案:

答案 0 :(得分:0)