码迷,mamicode.com
首页 > 编程语言 > 详细

C++引用和指针的区别

时间:2018-09-05 09:07:24      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:student   his   style   地址   opera   mem   参数   变量   优化   

一、引用和指针的定义

  引用:它是给另一个变量取一个别名,不会再次分配空间(可以带来程序的优化)

  指针:它是一个实体,需要分配空间

      引用在定义的时候必须进行初始化,并且空间不能够改变

   指针在定义的时候不一定要初始化,并且指向的空间可变。(注:引用的值不能为NULL)---------->可以带来程序的安全性

   引用访问一个变量是直接访问,而指针访问一个变量是间接访问

 

二、C++初始化函数6个默认函数

  1.构造函数

  2.析构函数

  3.拷贝构造函数(当函数参数为对象时候)  ------->浅拷贝   深拷贝

    Text  t1;

    Text t2(t1)

              Text t2 = t1;

  4.赋值函数 ----------->浅赋值  深赋值

   Text t1;

   Text t2;

   t2 = t1;

  5.Text a;

           Text *b = &a;

   Text*  operator&(){ return this};

  

       6.const Text a  (常对象);

          const Text *b = &a;

   const  Text* operator(){return this};

 

三、深拷贝、浅拷贝

  执行过程:调用一次构造函数,一次自定义拷贝构造函数,两次析构函数。两个对象的指针成员所指内存不同。

  浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间

  深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。

 

Student::Student()
{
      name = new char(20);
      cout << "Student " << endl;
}

Student::~Student()
{
         cout << "~Student " << (int)name << endl;
         delete name;
         name = NULL;
}

Student::Student(const Student &s)
{
         name = new char(20);
         memcpy(name, s.name, strlen(s.name));
         cout << "copy Student " << endl;
}

 

C++引用和指针的区别

标签:student   his   style   地址   opera   mem   参数   变量   优化   

原文地址:https://www.cnblogs.com/liunx1109/p/9589308.html

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