zoukankan      html  css  js  c++  java
  • 构造 & 析构 & 匿名对象‍

    ‍以前仅知道创建对象,但对匿名对象的了解基本为0。

    通过阅读google chromium源代码 中关于 log 的使用,查阅相关资料,了解了一下匿名对象,予以记录。

    什么是匿名对象

    匿名对象可以理解为是一个临时对象,一般系统自动生成的,如你的函数返回一个对象,这个对象在返回时会生成一个临时对象。

    #include <iostream>

    class myclass {
    public:
      myclass()
      {
        std::cout << "构造函数" << std::endl;
      }
      ~myclass()
      {
        std::cout << "析构函数" << std::endl;
      }
    };

     

    void playStage() {

      myclass();                 /*在执行此代码时,利用构造函数生成了一个匿名myclass类对象;执行完此行代码,因为外部没有接此匿名对象的变量,此匿名又被析构了*/

      myclass my= myclass();     /*在执行此代码时,利用构造函数生成了一个匿名myclass类对象;然后将此匿名变成了my这个实例对象,此匿名对象没有被析构。*/

      std::cout<<"my 对象没有被析构"<<std::endl;

    }


    int main() {
      playStage();
      system("pause");
      return 0;
    }

    输出:

    构造函数
    析构函数
    构造函数
    my 对象没有被析构
    析构函数

  • 相关阅读:
    Next Permutation
    Substring with Concatenation of All Words
    Divide Two Integers
    Remove Duplicates from Sorted Array
    3sum closest
    ThreadPoolExecutor参数与拒绝策略
    多线程情况下ArrayList 如何解决线性安全问题
    ArrayList扩容机制jdk1.8
    SpringCloud--工作流程(好文)
    Java面试——TCP与HTTP
  • 原文地址:https://www.cnblogs.com/liaokang/p/5765714.html
Copyright © 2011-2022 走看看