c++构造函数和new运算符的学习实例源码

c++构造函数和new运算符的学习实例源码,两种对象的构造方法。c++栈由于是系统自动分配的,因此速度比较快,但是缺点就是可存放的内存空间比较小,只有2M,假如我们要存放比较大的数据的时候,栈显然是不够大的,那么就用到存放到堆中,c++堆是一大堆不连续的内存区域,在系统中由链表将它们串联起来,因此它它存放的空间可以使很大,关于它们在效率以及申请方式上的区别,我们还要在数组中详细讨论,这里我们只需要了解它们两点不同:首先是栈由系统自动分配内存,堆要程序员进行申请;然后是c++栈中空间比较小,只有2M,堆的上限是由系统中有效的虚拟内存来定的,因此获得的空间比较大。

#include <iostream>
using namespace std;

class A{
public:
A(){cout<<”构造函数执行完毕!\n”;}
void set(int k,char t){i=k;j=t;}
void print(){cout<<”i=”<<i<<”\tj=”<<j<<endl;}
private :
int i;//占用四个字节
char j;//占用1个字节
};

int main(){
/*
c++两种不同的对象构造方法
*/
A a;//a对象占用5个字节也就是成员变量内存空间相加的结果,并且存放c++在栈中
a.set(8,’9′);//通过对象a调用set方法
a.print();//输出存放的数据是否正确

A *aa;//声明A对象的指针
aa=new A;//创建c++堆中的对象aa,这样aa就可以访问该对象,自动调用构造函数并设定内存空间
aa->set(89,’88′);
aa->print();//输出存放的数据是否正确

return 0;

}

  本文链接地址: c++构造函数和new运算符的学习实例源码