我对 C++ 很陌生,并且观察到以下代码行的行为不同
MyClass c1;
c1.do_work() //works
MyClass c2();
c2.do_work() //compiler error c2228: left side is not a class, structure, or union.
MyClass c3{};
c3.do_work() //works
头文件为
class MyClass {
public:
MyClass();
void do_work();
};
你能解释一下,这三种创建对象的方式有什么区别吗?为什么第二种方式会产生编译器错误?