C++ 中 union 的使用
我之前总是觉得,10 万行 C++ 代码里,用到一个 union 就不错了(可能比较夸张)。但是现在我突然想到,在一类情况下,union 还是大有用武之地的。
有的时候我们需要直接对二进制数据进行操作,比如将一个结构体的信息保存到一个二进制文件里的时候,或者直接操作一些底层的东西,或者说开发一些底层的协议啥的。在之前我都是用“把结构体指针转换成 char 数组指针”,然后进行的。
我之前总是觉得,10 万行 C++ 代码里,用到一个 union 就不错了(可能比较夸张)。但是现在我突然想到,在一类情况下,union 还是大有用武之地的。
有的时候我们需要直接对二进制数据进行操作,比如将一个结构体的信息保存到一个二进制文件里的时候,或者直接操作一些底层的东西,或者说开发一些底层的协议啥的。在之前我都是用“把结构体指针转换成 char 数组指针”,然后进行的。
在父类的构造函数或析构函数中调用虚函数,调用的不是子类的重载函数,而就是这个类的相应函数。但是如果在父类的其它函数中调用虚函数,会调用到子类的重载函数。
其实这个是很容易理解的,构造函数调用的顺序,是先调用父类的构造函数,再调用子类的构造函数。由于父类的构造函数运行的时候,子类甚至没被初始化,所以不好调用子类的虚函数。反过来看,析构函数是从子类开始调用到父类,父类的析构函数调用的时候,子类已经析构了,这时虚函数也不能够调用子类的。
libGdx 是一个开源的 Android 游戏引擎。我也刚开始使用不久,个人觉得这个引擎还是比较轻量级的。之所以接触这个引擎呢,是因为 Java 课的期末项目是一个 Android 程序,我选择用这个引擎写一个华容道游戏,很简单吧。libGdx 有一个优点,就是可以在 PC 上模拟游戏的运行,不需要 Android 模拟器。用过 Android 模拟器的都知道那是慢得……
首先,至少需要一个 Eclipse… 如果想生成 Android 的程序,也就是 apk 文件,那么还需要装 Android SDK.
然后,从 libGdx 的官方网站下载最新版的 libGdx. 目前最新版是 0.9.2 . 具体地说,就是去那个页面把 libgdx-0.9.2.zip 这个文件下下来。然后解压待用。