码迷,mamicode.com
首页 > 其他好文 > 详细

构造器(Constructor)--构造函数

时间:2019-07-16 00:41:22      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:变量   开始   引用类型   static   数据   空间   成员函数   初始化   之一   

  1. 构造器是类型的成员之一,其他成员比如,成员字段,成员函数。狭义上,构造器指的是实例构造器(instance constructor)
class Student
    {
        public int ID;
        public string Name;
        public Student()//不带参的构造器,制造出来就又默认值了
        {
            this.ID = 1;
            this.Name = "No name";
        }
        public Student(int initId,string initName)//带参构造器,需要在创建实例的时候手动写入

        {
            this.ID = initId;
            this.Name = initName;
        }   
    }
 static void Main(string[] args)
        {
            Student stu = new Student(2,"Mr okay");   
            Student stu2 = new Student();   
        }

  


 

*加构造器的快捷件 ctor+两次tab

2.构造器在内存里是怎样操作的

在stack中是从内存地址由高到低分配的,所以叫栈溢出(stackoverflow)

1,对于不带参的构造函数

先在stack中开辟一个空间用来存放引用变量,然后去heap里面根据成员变量类型,依次开辟空间,数据存为0,然后将其地址复制放在刚刚stack的位置

2.对于带参的构造函数

先在stack中开辟一个空间用来存放引用变量,然后去heap里面根据成员变量类型,依次开辟空间,存放初始化的数据,如果是值类型,就放数据,如果是引用类型,再去另一块heap中开辟地址,把真正的数据放在新开辟的位置,把位数据的地址放在第一次开辟heap的里面,stack里面存放数据开始时候的地址,有点堆中堆的感觉;

构造器(Constructor)--构造函数

标签:变量   开始   引用类型   static   数据   空间   成员函数   初始化   之一   

原文地址:https://www.cnblogs.com/1521681359qqcom/p/11192202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!