VC6.0中重载操作符函数无法访问类的私有成员

在 C++ 中,操作符(运算符)可以被重载以改写其实际操作。同时我们可以定义一个函数为类的朋友函数(friend function)以便使得这个函数能够访问类的私有成员,这个定义通常在头文件中完成。 在Visual C++中定义一般的函数为朋友函数通常是没有问题的。然而对某些重载操作符的函数,即使我们将它们定义为类的朋友函数,VC的编译器仍然会显示出错信息,认为这些朋友函数无权访问类的私有成员。我认为这应该是VC6.0的bug。

以指针或reference为参数的C++函数定义与调用对照表

初学者不易建立清晰的指针和reference概念,总结这个表以供快速参考: 假设有对象定义: MyObjectType obj1; 1. 值传递: 如果函数定义为: void myFunction( MyObjectType obj); 函数调用: myFunction(obj); //函数以外对象obj的值不会 改变 2. reference传递: 如果函数定义为: void myFunction( MyObjectType &obj); 函数调用: myFunction(obj); //函数以外对象obj的值会 改变 3. 指针传递: 如果函数定义为: void myFunction( MyObjectType *obj); 函数调用: myFunction(&obj); //需要dereference(&), 函数以外对象obj的值会 改变 要了解更多关于C++指针的概念请阅读C++基础教程指针篇

浅谈Web Services 三要素

Web Services 现在是个热门话题,与之相关的XML, XSLT, SOAP, UDDI, WSDL等等词汇也都成了热门关键字。究竟这些技术是如何被集成运用到一起的,它们在Web Services中所扮演的角色又如何,在Connie Smith的一篇关于PMIF的论文中我居然发现了一段关于Web Services的介绍非常简洁清晰,在这儿与大家分享一下。 一个Web Service是一个被设计用来支持机器与机器之间通过网络进行跨平台交互操作的软件系统。Web Services是封装完整的应用模块,并自带描述信息,可以在网路上发布,可以被定位查找,可以通过Web被调用。 要访问一个Web Service,用户必须知道这个服务的定义(比如接口信息),而不需要知道它是怎样实现的(比如用什么语言写的)。因此,客户软件和服务器软件可以是使用不同语言编写的,这就是互操作性(interoperability)。 在Web Service架构中有三个主要元素,全部是基于XML(eXtensible Markup Language):SOAP(Simple Object Access Protocol) 、WSDL(Web Services Description Language) 和 UDDI(Universal Description, Discovery, and Integration)。 SOAP直译是简单对象访问协议,是访问Web Services的标准协议,它使得不同应用软件之间进行信息交换和通信成为可能。它是一种基于XML的通信和远程过程调用协议,在现有的多种传输协议上都可以工作,例如 TCP,HTTP,SMTP等。一个SOAP消息是一个XML文件,具有四个基本组成部分:信封(envelope)、信头(header)、内容(body)和出错(fault)。 WSDL也是一种基于XML的语言,直译是网络服务描述语言,它描述了一个Web Service所提供的操作以及它的接口定义。 UDDI是一个Web Service的注册登记处,用户通过它可以查找到当前已经发布的Web Service有哪些及在哪里可以找到。 有了这些技术,我们现在可以定义:一个Web Service是一个发布在网络上的,可以通过SOAP访问的,由WSDL描述的,在UDDI注册登记的网络服务。

怎样才能把自己的网站做好

我从这里转来的,的确是篇好文,很有道理,不只针对建站,对所有business都值得借鉴。 —————————————————————————————— 1. 250定律 拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也就意味着得罪了250 名顾客。 在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这个过程中此定律尤其重要。 2. 达维多定律 达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。 国内网站跟风太严重,比如前段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋,不是去捡人家剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。

从Java到C++ — 对比Java与C++编程的不同

原作:Cay Horstmann 英文原文 翻译:Aqua  prglab.com 注:很多程序员包括本人在内都是先学会的Java,然后才学的C++,其实C++与Java有很多相似和互通之处,有相当的Java知识可以对应转化到C++概念,从而帮助我们快速上手。这篇文章介绍的内容就对从Java向C++转变很有帮助,所以翻译推荐给有同样需要的朋友。翻译中加入了本人的理解,不完全是全文照搬。有不明或异议,请参考原文,或留言讨论。还是那句话,推荐多读原版资料。 学习怎样从一种编程语言转移到另一种编程语言是今日的程序员必须面对的现实,还好,C++和Java有很多共同的特点,所以从Java转到C++就容易许多。C++比Java复杂很多,本文并没打算涵盖所有C++的功能。但是如果你能够熟练掌握本文中的所有知识点,也足够有效的使用C++了。

推荐一本Java处理XML的书

XML是现在程序员必备的技能了,有次面试就被问到有没有写过处理XML的程序,用的是什么。记得以前最常用的DOM parser是Apache的Xcerces,在Java 1.4以后,Java标准中有了自己的处理XML的API,叫做JAXP。 Elliotte Rusty Harold的这本书Processing XML with Java详细介绍了如何使用Java编程语言处理XML文档,是一本实用而且综合的指南与教程。书中简要概述了 XML基础,包括XML语法、DTD、模式、有效性,样式单和XML协议XML-RPC、SOAP与RSS。本书的核心内容是深入介绍了Java编程人员用Java生成与操纵XML文档时所用的关键XML API,包括SAX、DOM(文档对象模型)和JDOM。此外,还介绍了这些核心API的许多重要补充,包括XPath,XSLT,TrAX与JAXP,是所有需要使用XML的Java编程人员的宝贵参考资料。 现在这本书的英文版全文已经在线发布在XML的资源网站Cafe con Leche。本书也有中文译本,名为《Java语言与XML处理教程:SAX,DOM,JDOM,JAXP与TrAX指南》,以前卓越可以找到,现在好像找不到了。

JavaScript入门教程编写完成

JavaScript是Web的脚本语言。成千上万的网页使用JavaScript来进行优化设计、验证表格、检查浏览器、生成cookie 等等等等工作。JavaScript 可以说是internet上最流行的脚本语言,也是目前流行的网络开发技术AJAX的基础,可以说是每个网站开发人员的必备技能。 实际上JavaScript十分简单易学,为帮助大家学习,特编写此JavaScript入门教程,教程十分基础,针对新手,即使没有编程经验也不要紧。 目前这本教程的基本内容已全部完成,但语言方面还需极大的完善,正在改进中。内容会不断更新,敬请关注,并欢迎提宝贵意见。 版权归作者所有,欢迎链接,请勿转载。

[节选]新一代专家系统工具——基于Java的Jess(转载)

转自:http://www.360doc.com/showWeb/0/1/42844.aspx 近10 年来,随着计算机技术和人工智能技术的飞速发展,尤其是网络技 术的进步,专家系统也有了新的重大发展,出现了以Java为核心技术的专家系统开发工具。由美国Sandia实验室推出的专家系统外壳Jess(Java expert system shell)就是其中的一个出色代表,本文将介绍它的来龙去脉和主要特点。

C++中Reference与指针(Pointer)的使用对比

引用(reference)和指针(pointer)是学C++过程中最令人头疼的问题,常常不知道什么时候用哪个合适,又常常弄混。找到Dan Saks的这篇文章,讲的很清楚,强烈推荐,所以翻译一下供大家参考。 ——————————————————————————— 以下译自Dan Saks的文章 References vs. Pointers 英文原文 ——————————————————————————— 了解引用reference与指针pointer到底有什么不同可以帮助你决定什么时候该用reference,什么时候该用pointer。 在C++ 中,reference在很多方面与指针(pointer)具有同样的能力。虽然多数C++程序员对于何时使用reference何时使用pointer 都会有一些直觉,但总还是会有些时候搞不清楚。如果你想要建立一个关于使用reference使用的清晰有理的概念, 又有必要了解到底reference和pointer有什么不同。