一点商榷

    这两天有篇文章写的是“发展负责任的人工智能”,既然有“负责任的人工智能”,以此类推,还应有负责任的核武器”、负责任的航母”、负责任的导弹”、负责任的子弹”......

        作为对称,还应有“不负责任的人工智能”吧!以此类推,还应有不负责任的核武器”、“不负责任的航母”、“不负责任的导弹”、“不负责任的子弹”......

   

客观地说,那篇文章写的不错:http://it.people.com.cn/n1/2019/0618/c1009-31164966.html

有理有据,有引用有语录,就是感觉题目有点值得商榷,在下文人墨客,穷酸,还望见谅!若有不妥之处,多多不吝指正!

640?wx_fmt=png

     科学技术本身并无负不负责任之说,负责任的永远是——人(包括设计者、制造者、使用者、维护者、宣传者、经营者等),真诚希望新闻媒体界的朋友能够三思而后题,这样才能真正保证人工智能等高新技术长久、持续为人们所客观接受,细水长流不腐,户枢长动不蠹……

展开阅读全文

《ATL开发指南》的一个值得商榷的地方

12-01

最近看《ATL开发指南》(英文名《ATL Develper’s Guide》 [美]Tom Armstrong Ron Patton著 董梁 丁杰 李长业 等译 董梁 审校),在该书的1.6 节中碰到一个值得商榷的地方。rnrn1.6 ATL如何使用模板rn首先我们分析一下下面两个类:rnrnclass CBasernrn public:rn CBase()rn ~CBase() rnrn void BaseMethod()rnrn cout<<"BaseMethod in Base"<rnclass CComObject :public Trnrnpublic:rn CComObject()rn ~CComObject()rnrn void CallBaseMethod()rn rn T* pT = static_cast(this);rn pT->BaseMethod();rn rn;rnrnrnrnrnint main(int argc, char* argv[])rnrn CComObject *pMath = new CComObject;rnrn pMath->CallBaseMethod();rnrn delete pMath;rn return 0;rnrnrn 作者列出了上面这个例程,然后说:CComObject类是根据模板生成的,因此它需要一个类参数。因此,你可以看到,该参数在CComObject里被用来基类的替换量。这意味着CComObject最终会通过模板参数所指定的类派生出来。CComObject是一个通用的类,它调用了基类里的特定方法。在CComObject里另外一个有趣的方面是调用基类方法的方式。通过把基类作为一个模板参数进行传递并使用该类型对类实现指针进行类型转换,就可以得到指向基类实现的一个直接指针。rnrn在这里,重要的一点是我们并没有虚函数来覆盖上级类的特性。ATL开发队伍里的程序设计人员竭力使ATL更加高效、更加有效。在大的类层次里,调用虚函数的代价将非常高昂(主要是速度和代码长度方面),而ATL无须使用虚函数也可以完成相同的功能。rnrn在这里我发现作者的文字描述和代码是互相矛盾的。一方面作者宣称在CComObject里另外一个有趣的方面是调用基类方法的方式。通过把基类作为一个模板参数进行传递并使用该类型对类实现指针进行类型转换,就可以得到指向基类实现的一个直接指针。照他的说法,在main函数里调用代码应该是这样的:rn CComObject *pMath = new CComObject;rn而不是CComObject *pMath = new CComObject;rnrn而CComObject *pMath = new CComObject;rn这样是编译不通过的,出现错误:rnrnerror C2440: 'initializing' : cannot convert from 'class CComObject *' to 'class CComObject *'rn Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style castrn(编译环境:英文版 XP sp2, Visual C++ 6.0 sp6)rnrn 如果是CComObject *pMath = new CComObject;,它不过是调用CMath的成员函数BaseMethod,只不过这个成员函数有点特殊,和基类的一个成员函数名字相同罢了。这跟虚函数有什么关系呢?要知道虚函数的一个重要作用是基类指针指向派生类对象,能够调用派生类定义的函数。因此我觉得作者拿这一点跟虚函数比较是十分扯淡的。rn 论坛

没有更多推荐了,返回首页