您的位置:首页 > 编程语言 > C语言/C++

C++ 构造函数和New运算符

2016-05-16 13:24 471 查看
      算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。

       系统会自动在栈中为每个变量开辟内存空间,以保证数值被合理地存放。

       由于栈是系统自动分配的,因此速度较快,但是缺点是可存放的空间小,2M。

      使用new运算符在堆中创建一个对戏那个时,也会自动调用构造函数来实例化该对象的数据成员。

/*使用NEW运算符在堆中开辟一块新空间,例程如下:

#include <iostream>

using std::cout;

class A

{

public:

A(){cout<<"构造函数执行完毕\n";};

};

int main()

{

A *p;     //声明一个属于A类的指针p

p=new A; //使用new运算符创建一块堆中空间,它的大小由类A的数据成员的类型和数量
//来定,由于堆在内存中都是匿名的,因此这里没有为它命名,只是将它的内存
//地址赋给了指针p

return 0;

}

*/

//使用new运算符创建并实例化一个对象,例程如下:

#include <iostream>

using std::cout;

class A

{

public:

A(int a,int b){i=a;j=b;cout<<"构造函数执行完毕\n";};

void print(){cout<<i*j<<"\n";}

void set(int a,int b){i=a;j=b;}

private:

int i,j;

};

int main()

{

A *p=new A(1,2); //在创建一个对象的同时实例化它的数据成员

p->print();   //输出结果

p->set(7,8);   //利用成员函数访问该对象的数据成员并赋值

p->print();   //输出结果

return 0;

}    

使用new运算符建立一个类的对象时,比如说类A的对象,new首先分配足以保证该类的一个对象所需要的内存,然后自动调用

构造函数来初始化这块内存,再返回这个对象的地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: