2010/02/23

Gentoo: setup scim in GNOME

1 add USE flags:
 USE="${USE} scim unicode nls"

2
emerge -avuDN world

3  #  vim /etc/locale.gen;
    #  locale-gen
    #  env-update ; source  /etc/profile

4  add LANG="en_US.UTF-8" to /etc/env.d/02locale

5  set environment inf /etc/source of ~/.xinitrc
 export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export QT_IM_MODULE=scim
6  Sometimes: add line "scim -d &" to ~/.xinitrc


--
Liu Lantao
EMAIL: liulantao ( at ) gmail ( dot ) com ;
WEBSITE: http://www.liulantao.com/ .

2010/02/11

C++构造函数私有的有趣问题

C++构造函数私有的有趣问题

很多情况下,一个类的构造函数是按照public权限作为接口,当构造对象时默认来执行一些初始化功能。但是当构造函数出现在private中时,对类进行实例化时,会无法取得构造函数的权限,于是不能通过这种方式构造对象实例。疑问出现了:如果不能通过构造函数对类进行实例化,那么这个类还有用处吗?

其实,构造函数私有并不违背C++的语法规则,我们也大可不必为这个问题担心。解决之道呢,一般来说有两种方法。
第一种方法,使用class的static成员来进行实例化工作。因为他们独立于class的对象,所以不必实例化也能够使用它来进行一些private操作,当然就可以调用那个害羞的构造函数。
第二种方法,当然可以通过一些朋友们来绕过这个权限控制,也就是我们都很熟悉的友元函数/友元类。

追究原因,因为这类class不能被任意调用创建实例,于是适合构造一些需要进行对象控制的类。

--
Liu Lantao
EMAIL: liulantao ( at ) gmail ( dot ) com ;
WEBSITE: http://www.liulantao.com/ .