#include <cstdio>
#include <iostream>
using namespace std;

class TmpClass;
void FuncScopeTmpClass(TmpClass s);

class TmpClass{
public:
    TmpClass():ident(i--){ printf("%2d ++\n", ident); }
    ~TmpClass() { printf("%2d --\n\n", ident); }
    int tick() { printf("%2d ||\n", ident); return i; }
private:
    int ident;
    static int i;
    friend void FuncScopeTmpClass(TmpClass s);
};

int TmpClass::i = 20; 

TmpClass GetTempClass() { return TmpClass(); } 

void FuncScope(int s) { printf("%2d >>\n", s); }
void FuncScopeTmpClass(TmpClass s) { printf("%2d <<\n", s.ident); }

int main() {
    while(GetTempClass().tick()) {
        TmpClass a, b;
        GetTempClass(), GetTempClass(), FuncScope ( GetTempClass().tick() );
        FuncScope ( GetTempClass().tick() ), GetTempClass();
        FuncScope ( GetTempClass().tick() );
        FuncScopeTmpClass ( (GetTempClass(), GetTempClass(), GetTempClass()));
        break;
    }; return 0;
}
/* standard output
20 ++
20 ||
20 --

19 ++
18 ++
17 ++
16 ++
15 ++
15 ||
14 >>
15 --

16 --

17 --

14 ++
14 ||
13 >>
13 ++
13 --

14 --

12 ++
12 ||
11 >>
12 --

11 ++
10 ++
 9 ++
 9 <<
 9 --

10 --

11 --

18 --

19 --
*/

cpp-variable-lifetime的更多相关文章

  1. jbpm的学习 出处http://blog.csdn.net/hxirui/article/details/1221911

    jbpm入门例子 分类: opensourse2006-09-14 11:30 37308人阅读 评论(22) 收藏 举报 jbpmhibernate数据库oraclemysqltransition ...

  2. jbpm入门样例

    1.      jBPM的简介 jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储.    參考 http://www.jbos ...

  3. 【LINT】cpplint修改版:自定义编码风格检查工具lint

    github:https://github.com/skullboyer/code-check Code Check 本仓介绍的内容涉及代码静态检查和编码风格检查 但主要放在编码风格检查,lint是基 ...

  4. OPEN CASCADE Multiple Variable Function

    OPEN CASCADE Multiple Variable Function eryar@163.com Abstract. Multiple variable function with grad ...

  5. vs2012 error c4996: This function or variable may be unsafe

    编译lua源码时,使用vs2012,遇到如下错误. 1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------ 1>  stdafx.cpp ...

  6. 配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题[zz]

    使用vs2012/2013配置opencv编译出现问题: 1>------ 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ------ 1> ...

  7. 安装solidity遇见的问题——unused variable 'returned'

    在编译安装solidity的过程中遇见了一个很奇怪的问题 webthree-umbrella/libethereum/libethereum/Executive.cpp: In member func ...

  8. [C/CPP系列知识] 那些程序C语言可以编译通过但C++无法编译成功 Write a C program that won’t compile in C++

    http://www.geeksforgeeks.org/write-c-program-wont-compiler-c/ 1) C++中在函数声明之前调用一个函数会引发错误,但是在C中有可能可以. ...

  9. Visual Studio 2015 编译错误【错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. 】的解决方案

    错误提示信息: 错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s inst ...

  10. Run-Time Check Failure #2 - Stack around the variable 'ucPriKey' was corrupt

    Run-Time    Check    Failure    #2        一般是栈被破坏,你的代码可能有缓冲区溢出一类的问题. Run-Time Check Failure #2 - Sta ...

随机推荐

  1. Installing Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 in Silent Mode

    概要 在RHEL7静默方式安装oracle database 12.2 RAC. 一.环境配置 1. 配置hosts文件 cp /etc/hosts /etc/hosts_$(date +%Y%d%m ...

  2. SQL Server 断开某个数据库所有连接(还原的时候需要)

    问题描述: SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决办法: 右键点击数据库 -> 属性 -> 选项 -> 状态 -> 限制访问 -&g ...

  3. 删除iptables nat 规则

    删除FORWARD 规则: iptables -nL FORWARD --line-numberiptables -D FORWARD 1 删除一条nat 规则  删除SNAT规则 iptables ...

  4. [图解tensorflow源码] Simple Placer节点布放算法

  5. 初次接触ARM开发,理清这四个开发思路很重要!

    初次接触ARM开发,理清这四个开发思路很重要! 由于涉及编程,学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的,学习知识不难,难的是理清其中的开发思路,找到一个好的起点.本文就将从这一步入 ...

  6. Msys/MinGW与Cygwin/gcc

    一. MinGW MinGW 官方网站为 http://www.mingw.org/ MinGW,即 Minimalist GNU For Windows(GCC compiler suite).它是 ...

  7. 【ev】视频软件

    EV系列:EV录屏.EV剪辑

  8. html5复习--canvas

    一.简介 <canvas>是html5新增的标签,可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素.它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至 ...

  9. 「iOS」你会用几种方法实现计时器

    1.NSTimer 存在一定的误差,不管是一次性的还是周期性的timer得实际触发事件的时间,都会与所加入的runloop和runloopMode有关,如果此runloop正在执行一个连续性的运算,t ...

  10. C++ 容器类型成员

    类型别名   iterator 此容器类型的迭代类型 const_iterator 可以读取元素,但不能修改元素的迭代器类型 size_type 无符号整数类型,足够保存此种容器类型最大可能容器的大小 ...