<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Innocent_code的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Innocent_code</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Innocent_code]]></copyright><item><title><![CDATA[状态机与动画]]></title><link>https://blog.csdn.net/Innocent_code/article/details/90795097</link><guid>https://blog.csdn.net/Innocent_code/article/details/90795097</guid><author>Innocent_code</author><pubDate>Tue, 04 Jun 2019 18:20:58 +0800</pubDate><description><![CDATA[关键字：动画 状态机 窗体 Geometry

一、概念

状态（State）：是静态的东西，对一系列对象属性的一组静态描述和配置。

状态机（State Machine）:管理了所有的状态，并提供状态轮转机制



过渡（Transition）：是一段时间或者空间的描述，状态之间切换的整个过程，或者描述的是不同属性值之间变化的一个过程。在现实中，状态切换常常不是瞬间完成，它有很多中间态，比如日...]]></description><category></category></item><item><title><![CDATA[Qt5.12.2 + mingw 怪异问题记录与解决办法]]></title><link>https://blog.csdn.net/Innocent_code/article/details/89532541</link><guid>https://blog.csdn.net/Innocent_code/article/details/89532541</guid><author>Innocent_code</author><pubDate>Fri, 26 Apr 2019 10:33:15 +0800</pubDate><description><![CDATA[首先给问题截个图：



第一个：

D:\Qt\Qt5.12.2\Tools\mingw730_64\lib\gcc\x86_64-w64-mingw32\7.3.0\include\c++\bits\streambuf_iterator.h:155: error: there are no arguments to '_M_message' that depend on a template ...]]></description><category></category></item><item><title><![CDATA[不能返回临时变量的引用]]></title><link>https://blog.csdn.net/Innocent_code/article/details/88577551</link><guid>https://blog.csdn.net/Innocent_code/article/details/88577551</guid><author>Innocent_code</author><pubDate>Fri, 15 Mar 2019 16:29:35 +0800</pubDate><description><![CDATA[下面是一段返回临时变量引用的代码：


#include &quot;stdafx.h&quot;
#include &quot;conio.h&quot;
#include &quot;windows.h&quot;

int &amp;amp;same()
{
  int a = 2;
  return a;
}

int main()
{
  int &amp;amp;b = same();

  for (;;)
  {
    printf(&quot;b value i...]]></description><category></category></item><item><title><![CDATA[C++隐式转换]]></title><link>https://blog.csdn.net/Innocent_code/article/details/88566845</link><guid>https://blog.csdn.net/Innocent_code/article/details/88566845</guid><author>Innocent_code</author><pubDate>Fri, 15 Mar 2019 10:51:12 +0800</pubDate><description><![CDATA[说说隐式转换

C++允许指定在类和其他类型之间进行转换的方式。任何接受唯一一个参数的构造函数都可被用作转换函数，可以将该构造函数参数类型的值转换为类对象。如果将构造函数参数类型的值赋给对象，C++自动调用该构造函数。假设有一个String类，它包含一个将char *值作为其唯一参数的构造函数，那么，如果bean是String对象，则可以使用下面的语句：

bean = “pinto”；

即将c...]]></description><category></category></item><item><title><![CDATA[构造函数抛异常的替代方案]]></title><link>https://blog.csdn.net/Innocent_code/article/details/88127301</link><guid>https://blog.csdn.net/Innocent_code/article/details/88127301</guid><author>Innocent_code</author><pubDate>Tue, 05 Mar 2019 11:41:47 +0800</pubDate><description><![CDATA[华为《C++编码规范》 规则7.1 构造和析构函数不能抛出异常

说明：如果构造和析构函数执行失败则无法安全地撤销和回滚，故这些函数不能向外抛出异常。为了降低复杂性，建议在这类函数中实现最简单的逻辑。

下面将分两方面介绍Init（）函数如何替代构造函数处理异常：

-&amp;gt;为何构造函数不能抛异常。

-&amp;gt;为何使用Init函数，可以抛异常



一、为什么构造函数要避免抛异常？

究其原...]]></description><category></category></item><item><title><![CDATA[C++对象构造与析构全流程]]></title><link>https://blog.csdn.net/Innocent_code/article/details/87985080</link><guid>https://blog.csdn.net/Innocent_code/article/details/87985080</guid><author>Innocent_code</author><pubDate>Wed, 27 Feb 2019 19:03:10 +0800</pubDate><description><![CDATA[对象构造流程

1. 首先，如果有virtual base class constructors,虚基类的构造函数必须被调用，从左往右，从深往浅：

-&amp;gt;如果有virtual base class constructor位于成员初值列，有任何显示指定的参数都应该传递过去；若没有位于初值列，而virtual base class含有一个默认构造函数，也应该调用。

-&amp;gt;class中的...]]></description><category></category></item><item><title><![CDATA[C++智能指针小结]]></title><link>https://blog.csdn.net/Innocent_code/article/details/87974665</link><guid>https://blog.csdn.net/Innocent_code/article/details/87974665</guid><author>Innocent_code</author><pubDate>Wed, 27 Feb 2019 15:26:30 +0800</pubDate><description><![CDATA[C++ 11新增的智能指针有三个：unique_ptr, shared_ptr, weak_ptr

要包含的头文件 ：memory.h

unique_ptr：只能有一个指针指向资源；

shared_ptr：多个指针可以指向同一个资源；

weak_ptr：用于弥补shared_ptr的不足，解决指针成环问题

定义一个指向类型为X的智能指针：

 unique_ptr&amp;lt;X&amp;g...]]></description><category></category></item><item><title><![CDATA[异常处理机制]]></title><link>https://blog.csdn.net/Innocent_code/article/details/85012145</link><guid>https://blog.csdn.net/Innocent_code/article/details/85012145</guid><author>Innocent_code</author><pubDate>Sat, 15 Dec 2018 10:44:44 +0800</pubDate><description><![CDATA[异常处理机制

异常处理的三个步骤：检查异常，抛出异常，处理异常

异常处理基本原理：把需要检测的程序放到try块中，把异常处理的程序放在catch块中。如果执行一个函数出现了异常，可以抛出异常信息。然后查找try块下面的catch块是否可以处理该异常。如果该函数不处理该异常，将传递给它的上一级函数（调用函数），如果它的上一级函数收到异常后也不处理，将逐层向上传递。如果传递到了第一层（如main函...]]></description><category></category></item></channel></rss>