大家好,问个基础问题!
小弟以前做java比较多,现在要用C++了,请大家多多关照.
在java或者c#里面,我们要使用某个对象的方法,一般如下:
ClassA a; //定义一个对象(在栈内声明一个引用)
a = new ClassA(); //实例化这个对象(在堆上生成对象的实体)
a.fun(); //调用对象的方法(调用堆上的某个方法)
但是在C++里面却可以这样搞:
例1:
ClassA* a;
a = new ClassA();
a->fun();
例子2:
ClassA a;
a.fun();
例子1还好理解,定义一个指针,然后动态分配一块内存,然后调用.
但是例子2是什么原理?a对象直接创建在栈上吗?
还有->操作符,和.操作符的具体区别是什么?该怎样理解?