C++静态创建对象和动态创建对象的区别

我们应该都知道C++中建立类的对象有两种方式:
①静态建立,例如B b;
静态建立一个类对象,就是由编译器为对象在空间中分配内存。使用这种方法,是直接调用类的构造函数
(2)动态建立,例如 B b = new B();
动态建立一个类对象,就是使用new运算符为对象在空间中分配内存。这个过程分为两步:第一步执行operator new( )函数,在堆空间中搜索一块内存并进行分配;第二步调用类的构造函数构造对象。这种方法是间接调用类的构造函数
代码示例:

#include <math.h>
#include  <iostream>
using namespace std ;
class  COMPLEX
{public:
    double real;
    double image;
    double AbsComplex( )
    { double temp;
       temp=real*real+image*image;
       return sqrt(temp);}
    COMPLEX();
    COMPLEX(double r,double i) 
    { real=r;   
	  image=i;    
	}
    ~COMPLEX()  //析构函数
    {  
		cout<<"自动调用析构函数"<<endl;
	}
 };
int main( )
{ COMPLEX *cpl;
	cpl = new COMPLEX(6,8) ;
  //调用“构造函数”初始化对象的
  //COMPLEX c; 
  //错误:因为“构造函数”有两个参数
  cout<<"复数"<<cpl->real<<"+"<<cpl->image<<"i的绝对值是:"
         <<cpl->AbsComplex()
         <<endl;
          delete cpl ;
    COMPLEX cp2(3,4) ; 
    cout<<"复数"<<cp2.real<<"+"<<cp2.image<<"i的绝对值是:"
         <<cp2.AbsComplex()
         <<endl;//随后自动调用析构函数
  return 0;
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值