这个问题可能有点奇怪,我在网上找不到任何关于它的内容。这主要是关于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();
这只是一个我很好奇的问题。