zoukankan      html  css  js  c++  java
  • 1-new对象与直接构建对象

    #include <iostream>
    using namespace std;
    
    class A {
    	public:
    	A(){}
    	A (int a){
    		this->a = a;
    	}
    	public:
    		int a;
    	    int b;
    }; 
    
    int main(){
    	A a = A(1); 		//创建的对象 
    	A *b = new A(2); 	//创建的指针 
    	A c = A(); 
    	cout << a.a << endl;	
    	cout << b->a << endl;
    	return 0;
    }
    

      

    c++里面, 创建对象,  ClassName object(初始化参数);在Stack栈里面分配空间,自动释放。
    或者用 ClassName object=new ClassNam();在heap堆里面分配空间,要手动释放。
    当你不确定需要多大的时候用NEW
    类里面用NEW实现多态, 有的时候解决类
    接口也用NEW, 这个一下说不清楚
    用NEW有一定内存泄露的风险, 可以考虑用
    1:声明分配内存是在编译阶段进行的,new分配内存是在运行阶段进行的
    2:声明被放在栈中,new被分配在堆中或自由存储区中
    3:声明创建数组,在编译阶段是就为他分配内存。
    new创建在运行阶段 需要创建时就创建,不需要创建时还可以在运行时选择数组长度,
    这就是因为int i;cin>>i;int a[i];不成功的原因,因为a[i]要在编译阶段就分配好内存,但是i在运行时才能知道
    int i;cin>>i;int * a=new int[i];这样可以,因为都是在运行阶段才进行。
  • 相关阅读:
    java arraylist int[] 转换
    nginx installl
    "segmentation fault " when "import tensorflow as tf"
    preprocessing MinMaxScaler
    java对集合的操作,jxl操作excel
    IPython安装过程 @win7 64bit
    JavaScript学习——创建对象
    JavaScript学习——理解对象
    JavaScript学习——Math对象
    JavaScript学习——Global对象
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9010602.html
Copyright © 2011-2022 走看看