cpp-variable-lifetime
#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的更多相关文章
- jbpm的学习 出处http://blog.csdn.net/hxirui/article/details/1221911
jbpm入门例子 分类: opensourse2006-09-14 11:30 37308人阅读 评论(22) 收藏 举报 jbpmhibernate数据库oraclemysqltransition ...
- jbpm入门样例
1. jBPM的简介 jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储. 參考 http://www.jbos ...
- 【LINT】cpplint修改版:自定义编码风格检查工具lint
github:https://github.com/skullboyer/code-check Code Check 本仓介绍的内容涉及代码静态检查和编码风格检查 但主要放在编码风格检查,lint是基 ...
- OPEN CASCADE Multiple Variable Function
OPEN CASCADE Multiple Variable Function eryar@163.com Abstract. Multiple variable function with grad ...
- vs2012 error c4996: This function or variable may be unsafe
编译lua源码时,使用vs2012,遇到如下错误. 1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------ 1> stdafx.cpp ...
- 配置OpenCV产生flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe问题[zz]
使用vs2012/2013配置opencv编译出现问题: 1>------ 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ------ 1> ...
- 安装solidity遇见的问题——unused variable 'returned'
在编译安装solidity的过程中遇见了一个很奇怪的问题 webthree-umbrella/libethereum/libethereum/Executive.cpp: In member func ...
- [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中有可能可以. ...
- 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 ...
- Run-Time Check Failure #2 - Stack around the variable 'ucPriKey' was corrupt
Run-Time Check Failure #2 一般是栈被破坏,你的代码可能有缓冲区溢出一类的问题. Run-Time Check Failure #2 - Sta ...
随机推荐
- ACE.js自定义提示实现方法
ACE.js自定义提示实现方法 时间 2015-11-19 00:55:22 wsztrush's blog 原文 http://wsztrush.github.io/编程技术/2015/11/0 ...
- sqlserver 一个字段分成两个字段 截取,保存
Ma,LeiTo(Ma,lT) 分割后为 姓 名 Ma,LeiTo Ma,lT SELECT LEFT(作者, CHARINDEX('(', 作者) - 1) AS 姓 , repl ...
- Keepalived + haproxy双机高可用方案
上一篇文章已经讲到了keepalived实现双机热备,且遗留了一个问题 master的网络不通的时候,可以立即切换到slave,但是如果只是master上的应用出现问题的时候,是不会 主动切换的. 上 ...
- Ubuntu 14.04安装QQ2012
GTkqq ,pidginQQ........等多多少少都存在一定的缺陷和问题. linuxQQ 有各种版本,这里介绍两种:linuxQQ(基本已不支持) 和 wineQQ (推荐使用) 1 ---- ...
- [AHOI2009]最小割
题目 最小割的可行边和必须边 可行边\((u,v)\)需要满足以下两个条件 满流 残量网络中不存在\(u\)到\(v\)的路径 这个挺好理解的呀,如果存在还存在路径的话那么这条边就不会是瓶颈了 必须边 ...
- [USACO09MAR]Moon Mooing
嘟嘟嘟 某谷的翻译挺迷的,简单来说就是给一个初值c,然后有两个函数f1 = a1 * x / d1 + b1, f2 = a2 * x / d2 + b2.把c分别带进去,所得的结果也递归带进去,这样 ...
- [luogu1600] 天天爱跑步
题面 直接写正解吧, 不想再写部分分了, 对于\(u\)和\(v\), 我们可以将它拆成两条路径, \(u\)到\(lca(u, v)\)和\(lca(u, v)\)到v, 在这里只分析从\(u\ ...
- 打包dll发布到nuget服务器
几个月前上传过一次nuget包,结果好久不用,今天想更新下,完全忘记了怎么用了,又是一顿查,所以决定记录下来,当然这可能不是一个傻瓜式的教程,但聪明的你们应该能够看明白的,因为整体操作还是很简单的 好 ...
- 集合之Stack
在Java中Stack类表示后进先出(LIFO)的对象堆栈.栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的.每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过 ...
- 关于iframe的父页面调取子页面里的事件(父往子里传)
在body里打开一个iframe页面,想要调取打开的这个页面里的函数: $('iframe')[0].contentWindow.sonFn(canshu); [0]:比如在index.html页面里 ...