Yuan Yijun (bbbush) wrote,
Yuan Yijun
bbbush

  • Mood:
  • Music:

下水了

找到一个 gcc-c++ 和 M$ c++ 的区别。。。。用了这么多年头一次哦,值得纪念


#include <iostream>
using namespace std;
namespace util{
 template<typename T>
 class A{
 public:
  static void Print()
  {
   cout << "in 'Print' of A" << endl;
  }
 };
 class B{
 public:
  static void Print()
  {
   cout << "in 'Print' of B" << endl;
  }
 };
}</p>

namespace common{
 template<>
  void util::A<int>::Print()
 {
  cout << "in 'Print' of A<int>"<< endl;
 };
 typedef util::A<int> AX;
 class BX:public util::B{
 public:
  static void Print()
  {
   cout << "in 'Print' of BX" << endl;
  }

 };
}

int main()
{
 common::AX a;
 a.Print();
 common::BX b;
 b.Print();
}


update:
发现区别还是蛮大的,因为不允许 static virtual 因此那个 Class 的做法几乎没有用处,因为在设想中构造函数需要调用一个成员函数,:( 另外类型太多了,要写的构造函数和要定义的数据成员都成问题,用模板就好得多。难道这个小小的问题还要折腾多久吗。。。。用模板的坏处是必须提供那个 static virtual 的默认实现~~ 所以才想知道,要实现类似的功能,究竟怎么办才好啊

原来的问题是这样的,一个 Exception 类,要输出的字符串是两部分,一个是用户提供的字符串,一个是根据 ErrorCode 得到的常量字符串。CppSQLite3 里面的源码,我想照抄过来用,它在构造函数里把这两个字符串拼起来,输出的时候就简单了。也许我该把构造函数去掉,把输出改得复杂一点点~~ 真是麻烦啊,我好笨阿。。。。输出时候拼好的字符串应该放在哪里呢?

嗯,最后的解决办法,是把所有的 Exception 类放到同一个名字空间里。然后,还是用了模板类的办法。因为构造函数只能找到 virtual 但是找不到 abstract virtual。回去再看看 BS 著名的 23 章的名字推断部分。


今天找到一个软件,叫做 AudioTagEditor,功能很不错,需要近 30 美元注册费用,可以试用 30 天。主要功能。。。。开始我差点第一个删掉它,因为探测到的很多 Tag 是空的。后来才发现设置里面有“先探测空 Tag 然后探测 ID3v2 Tag”这一项,本来这个软件的功能就是填写空白,那么这样的设定也有情可原了。比较吸引人的是漂亮的界面,虽然打开程序时候那个提醒注册的对话框难看得厉害,但是程序的界面太漂亮太柔和了。最好的功能是从 CDDB 下载数据,并且很奇怪的是它从 FreeDB 找到的数据比 EAC 要多得多,看来 EAC 有必要升级了呢,也许已经更新过了吧。从一大批 mp3 或是 ogg 音乐中再找出原来光盘的信息,真是太奇妙了,不知道 FreeDB 是什么原理,用什么作为 footprint 的。还有功能也比较全,左面是文件列表,占四分之一,右面分成上下两格,上面是文件列表,下面是 Tag 信息表单,表单分成四页,分别是一般信息,高级信息比如 ogg 的任意数量长度的注释等,歌词,CD 封面等等。最上面的菜单条下是一个工具条,是图标/文字的形式,很清楚。用起来主要是选择文件,填写表单,保存,速度也很不错。这个软件基本上是很好的实现了自己的功能。。。。但是不建议中文用户使用,因为会乱码,这一点和过去的 easyTag 是一样的。要是我在用着 Linux 多好啊。。。。免费的强大的漂亮的顺手的 easyTag。。。。

update:
正在用 Minix, 有生以来头一次见识这个玩具。Minix 3 今天正式发布,Andy Tanenbaum 教授原来还是这么爱折腾。。。。看看 Linus 十年前和 A.Tanenbaum 的那场论战,看来真的要到几十年后才会结束了。

没有安装,是下载的 VMware 虚拟机。一个虚拟机文件只有 12M,启动速度只有两三秒,关机更快,DOS 时代的感觉啊。。。。现在的操作系统哪个不需要几十秒才能启动呢,像我们 fedora 一般都是 50~80s 的样子。唉!不过使用 VMware 来发布虚拟机的想法的确不错,因为主要目的是试用,而 VMware Player 也很小巧灵活,并且都是免费的东西~~ 要是 M$ 就不一样了。另外,也提供了 QEmu 相关的文件。QEmu 是可以直接使用 VMware 虚拟机的是吧?

期待可以用 VMware 跑一跑南京大学计算机系自主知识产权的 SoftOS 安全操作系统,或者后继的几个安全操作系统版本。太好玩了。当年在 Bash 老大那里看他的 UML 虚拟机,那么复杂的步骤,真是没想到现在有这么多可选的东西。



Tags: 小东西
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment