美文网首页
C++ 匿名对象的生命周期

C++ 匿名对象的生命周期

作者: fck_13 | 来源:发表于2020-01-03 00:41 被阅读0次

请看代码:

#include <iostream>
#include <string>
#include <chrono>

class Object
{
public:
    Object(const std::string& name)
    {
        str = name;
        std::cout << str <<" " << "Constructor" << std::endl;
    }

    ~Object()
    {
        std::cout << str << " " << "destructed" << std::endl;
    }

private:
    std::string str;
};

Object externalObj("external");

int main()
{
    std::cout << "enter main" << std::endl;
    Object("un-name");

    Object internalObj("internal");

    std::cout << "Hello World" << std::endl;

    return 0;
}

运行结果:
external Constructor
enter main
un-name Constructor
un-name destructed
internal Constructor
Hello World
internal destructed
external destructed

原因:
Temporary objects are destroyed as the last step in evaluating the full-expression (1.9) that (lexically) contains the point where they were created.
就是说,匿名对象的生命周期为创建它的语句执行结束。

相关文章

  • C++ 匿名对象的生命周期

    请看代码: 运行结果:external Constructorenter mainun-name Construc...

  • C++、OC混编对象生命周期

    本人在C++和OC混编时对于两者对象生命周期有些疑惑,特别是OC对象作为C++对象成员的时候,C++对象会不会接管...

  • java8 lambda-2-各类语言中的lambda

    C/C++:函数指针 C#:委托 java之前:接口参数,实际传入匿名对象(匿名内部类) lamda表达式是Jav...

  • Android小知识-非静态内部类导致内存泄露

    非静态内部类(包括匿名内部类)默认就会持有外部类的引用,当非静态内部类对象的生命周期比外部类对象的生命周期长时,就...

  • Java之匿名对象

    匿名对象说明 匿名对象的使用

  • 匿名对象

    匿名对象:没有引用类型变量指向的对象称为匿名对象。 1 匿名对象要注意的事项: 我们一般不会给匿名对象赋予属性值(...

  • 匿名对象

    什么是匿名对象? 没有引用类型变量指向的对象就是匿名对象,匿名对象使用过一次之后就成了垃圾对象 匿名对象需要注意问...

  • 面向对象语法理解

    匿名对象 匿名对象的概念 匿名对象,一个没有变量取接收的对象 匿名对象的作用 1.只是使用一次(调用一次普通的方法...

  • C++ lambda 表达式及表达式捕获

    1. 概述 C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda 的...

  • 匿名对象

    没有引用类型变量指向的对象称为匿名对象。 匿名对象的主要作用:简化书写 匿名对象主要用于两种场景: 1.如...

网友评论

      本文标题:C++ 匿名对象的生命周期

      本文链接:https://www.haomeiwen.com/subject/ezpaoctx.html