注意:
成员变量一般是私有的,只能通过成员函数访问;
成员函数一般是公有的,可以提供给对象对外调用。
struct和class的区别(两个方面)
引申:栈上创建和堆上创建
在C++中类的对象建立分为两种,一种是静态建立,如A a;
另一种是动态建立,如A* p=new A(),Ap=(A)malloc();
静态建立类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后 在这片内存空间上调用构造函数形成一个栈对象。
动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针。
栈是由编译器自动分配释放 ,存放函数的参数值,局部变量的值,对象的引用地址等。其操作方式类似于数据结构中的栈,通常都是被调用时处于存储空间中,调用完毕立即释放。
堆中通常保存程序运行时动态创建的对象,C++堆中存放的对象需要由程序员分配释放,它存在程序运行的整个生命期,直到程序结束由OS释放。
总的来说,this类似于数组名,本身不占内存空间。
例子: