posts - 28, comments - 179, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
兴趣是绝对重要的东西,只有它才能培养一个人做某件事情的信心和毅力,不可能每一个人对任何一件事情都能表现出兴趣,所以也就不可能对任何一件事情表现出毅力。时间稍长兴趣就失去了,那这种可能叫做热情,不能称之为兴趣,因为兴趣是较长时间的一种固定倾向,不能持续的不能叫做兴趣,所以我觉得问题还是在于有没有兴趣的问题,不要将热情和兴趣划等号。
谢谢大家
re: 字符集相关问题 chemz 2008-06-22 13:55
楼上的需要注意你可能在写const wchar_t *wstr = L"中国";这句话时引号是个中文的,所以才会有问题。
楼上的建议非常的好,可以组建一个组委会,自发的总结一些常见的有意义的问题。

组委会招募开始......,有致力于从事公益事业的可以报名参与(回复一下就可以了)
re: FAQ杂志——每月一期 chemz 2007-11-28 09:10
大家好,如果有兴趣可以通过email的方式联系chemz@263.net,附带自己的简历和职位申请,如有需要会通过公司的名义约见各位,待遇面谈,谢谢!
re: C++类继承关系问题 chemz 2007-10-12 08:44
楼上提到:
public 是is a
private 是 has a

这个提法是OO概念发展的初期的一种认识,有点过于一般化不能更精确的表达出OO中的实际思想;一般现在的OO理论中将这样的概念称之为LSP(Liskov Substitution Principle),意思就是从行为上而言子类因该可以完全替换基类完成基类的行为职责。
public关键字在C++中仅仅只是一个语法元素,并不能强制使得采用了public继承的类体系一定满足LSP,其中还要看看子类在实现基类的接口行为时是否遵从了LSP原则,否则通过public继承而来的子类仍然不能称之为其满足LSP,当然此时可能能够满足is a关系。
至于has a关系在OO中应该理解为composite关系,也就是常说的组合关系,在其他的OO语言中(如:Java)composite仅仅能够通过包含关系来实现,在C++中则多了一种所谓的实现继承private,这样看来private仅仅只是一种特定语言的实现手段而已,代表的OO概念没有区别。
protected在继承时又应该是什么呢?其实如上面private具有相同的含义,仅仅只是为了方便C++类方法的传递调用而设计的,也是一种composite关系而已。
至于virtual继承关系请参看 http://www.cppblog.com/chemz/archive/2007/06/12/26135.html
re: Qt4.3.0编译记录 chemz 2007-08-21 08:41
你的这个问题应该是环境变量没有正确的设置导致的,请仔细核对VC、QTDIR、PATH环境变量
分析的不错,DDD是必须要做的一个步骤,而用户的需求可以认为是在用户领域模型下的一种增值业务。
re: 我的项目管理经历 chemz 2007-07-04 13:54
我深信一句话:“性格决定命运”,而根据人类社会学中的概念,性格的形成来自于两个因素:其一、父母的遗传(这个部分不可改变);其二、后天的教育(这个部分一旦形成也不可改变)。也就是说命运从一出生就被确定了一半,后天的教育(大学及以前)一旦完成也就不可改变了,那么其实想改变一个人的命运基本上是不可能的。
re: 在RHEL5上编译svn1.4.4 chemz 2007-07-03 17:49
在Open Source阵营当中,没有一个软件会声称自己对质量负责,Open Source是一种文化,你认同就参与和使用,不认同就不要使用否则对自己是一种折磨,没有好坏之分,就如同一个人的性格特征一样,没有好坏。
re: Qt4.3.0编译记录 chemz 2007-07-02 08:42
不好意思,你可以到网络上去搜索,很容易找到的
re: Qt4.3.0编译记录 chemz 2007-06-29 13:34
变化是有的,没有那么的翻天覆地,快捷键肯定有变化,就和Visual Studio.NET相对于Visual Studio98那样没有多大的关系啦
re: 我的项目管理经历 chemz 2007-06-27 16:21
MSTP多业务传输平台,没错,想给我介绍工作么?
re: 字符集相关问题 chemz 2007-06-27 12:05
不好意思我没有用过Sun的CC,凡是在Unix环境下开发我们都用统一的GNU gcc编译器集合,这样会比较好移植。
re: 我的项目管理经历 chemz 2007-06-27 10:32
离开是新的开始,新的开始为下一次离开做好了准备
re: 字符集相关问题 chemz 2007-06-27 10:27
你用的什么编译器,GNU还是Sun的?
re: 字符集相关问题 chemz 2007-06-27 08:51
我在搞solaris的时候也遇到过这个问题,我所在的环境是solaris9和10对于8我不太清楚。是这样的,在solaris的操作系统安装光盘中有一张单独的Languages语言支持光盘,必须要选择安装对应的字符集支持,如果要显示中文还必须要切换操作系统的当前语种到中文(任意一种中文都没有问题,最好采用GB18030,否则会出现有些生僻的字没有编码的问题),这样就可以转换和显示了。对于solaris8没有试过,因为比较老了。
re: 虚继承与虚基类的本质 chemz 2007-06-12 12:25
http://www.cppblog.com/chemz/archive/2007/05/31/25189.html文章中jazz提到的那段代码为何编译出错的原因在这篇文章中可以找到。
根据文章中的语义小节,虚基类的子对象必须要在每一个子类中都包含初始化语句所以,仅仅有Usable是虚基类的友元是不行的,还必须将D作为虚基类的友元。如下:
class Usable;
class D;

class Usable_lock {
friend class Usable;
friend class D;
private:
Usable_lock() {}
Usable_lock(const Usable_lock&) {}
};

class Usable : public virtual Usable_lock {
// ...
public:
Usable();
Usable(char*);
// ...
};

Usable a;

class DD : public Usable { };

DD dd;
是的,safe code是在Visual C++2005以上版本添加上去的。visual C++.NET2003中的STL库已经非常的不错了,标准兼容性也很好。我最开始使用2003的时候使用了STLport4.6.2替换了2003中的STL实现,感觉还不错的
re: boost1.34.0编译日志 chemz 2007-06-07 14:03
bjam "sTOOLS=vc-7_1" --prefix=D:\Boost install
你的命令写错了看到没有,仔细对比一下;
无法找到windows.h应该是VC的环境变量没有运行的原因
re: C++类继承关系问题 chemz 2007-06-07 10:38
稍后我会写一篇关于虚继承和虚基类的文章,解释你所提到的问题。
re: boost1.34.0编译日志 chemz 2007-06-07 09:07
"空明流转"提到编译上由于Visual C++2005的Safe Code会产生很多的警告信息,不会对代码产生任何的影响,关掉这些警告可能会比较的顺眼,谢谢!
re: boost1.34.0编译日志 chemz 2007-06-06 17:53
在Visual Studio.NET 2003下编译boost1.33.1的命令行:
bjam "-sTOOLS=vc-7_1" stage
就可以了,只是这个版本的regex库中有一个文件中包含了非法的注释字符串,会导致编译错误。
具体解决办法如下:
libs/regex/src/目录下的一个regex_traits_defaults.cpp文件中包含有ANSI编码无法包含的字符集,所以会导致编译的时候出现错误,要解决该问题可以将该文件用notepad.exe程序打开,将其中的/*?/字符串替换掉就可以了,对于VC8还要将config/compiler目录下的visualc.hpp文件中的第58行移动到71行的下面。
re: 什么是EBC和EBO[未登录] chemz 2007-06-04 14:02
虚基类是虚拟继承下的基类,抽象基类ABC(Abstruct Base Class)是包含有纯虚函数的基类。虚基类在继承时会在其子类中加入虚基类偏移指针,而ABC会由于具有虚函数而类中包含了vptr。
re: C++类继承关系问题 chemz 2007-05-31 14:57
楼上的提的非常好。
在面向对象的理论中有两种概念:接口、实现,所以就出现了所谓的接口继承和实现继承两种关系。而protected和private就是实现继承中所要用到的,其实protected和private两者则约束继承时并没有形成两种不同的继承类别,而仅仅只是为了方便C++类方法的传递调用而设计的,其实在java这样面向对象要求更为严格的语言当中,没有实现继承,他必须通过委托方式来完成这一概念,如果熟悉java就会明白,如果一个对象要使用另外一个对象的接口功能,而自身又不能够充当该对象所扮演的角色时,就会通过委托来完成,这样一来就必须在对象中包含一个委托对象,通过对象调用语法来完成功能;在C++中就可以通过protected和private继承来完成java中的委托关系(当然C++也可以形成对象委托关系),那么这种情况下protected继承就容许委托可以传递(也就是被多级子类调用),而private继承是不容许委托被传递的。
区别就这些。
re: 字符集相关问题 chemz 2007-05-31 09:14
非常感谢指出,书写时漏了L,谢谢!
重载就是为了解决用相同的函数名称来引用不同的函数体而设计的,上面的方法时间上就不算什么重载函数了,通过def文件将重载函数的每一个实例重新选取了一个C语言中的名称
肤浅了点,编译单元是编译器在一次编译过程所对应的编译状态集;比如:如果在b.cpp中包含了a.cpp则在编译b.cpp文件时会在编译器的上下文形成一个编译状态集,称之为一个编译单元。
你的内容中非常的强调了“CLI,最大的缺点是不人性.”,我想人性的本质好像不是CLI和GUI的区别吧,不要给CLI扣上这样的完全没有码头的概念,你写程序么?你使用XML么?那你会使用XML Spy中的可视化的方式来编写大规模的XML文件么?好好想一想,人类在学习读书时采用的就是一个基于字符的文档,你会从小到大都看以图片为主的图书么?图片和其他的可视化形式都仅仅只是人类在表达思想和传播信息时的一种清晰的辅助手段而已,不要忘记了人类最基本的习惯和认知。
深刻,boost的惯用法,通过function对象来将各种可以调用的实体(如:全局函数、成员函数、functor等)统一成为一种可调用对象。
re: friend随笔 chemz 2007-03-04 11:26
这是一个非常基本的问题,在C/C++语言中所有的定义体都只能有一个,不能够在多个编译单元中重复出现,所以回出现重复定义的问题,要解决这个问题可以采用内联的方式解决,而C++中可以采用隐式内联和显示内联两种方式,隐式内联就是写在类的申明中,显示内联就是在声明和定义出添加inline关键字.