核心bada接口是否基于C+的不当使用而构建+;构造? 几年前,我浏览了刚刚发布的三星BADA SDK和相关资料,我惊讶于“教程”和“指南”的数量,试图通过在C++语言层中有明显错误的错误构造的样本来澄清语言和平台的各个基本方面。(也就是说,见三星发布的演示文稿第8页和第9页,代码示例是原创的,我在SDK中也看到过类似的东西)。但它相对较新,所以我想他们会清理它
最近有一件事让我想起了一件不能被当作“打字错误”或“意外错误的代码示例”而忽略的事情: 虚拟结果Osp::Base::Collection::IList::Add(const Object&obj)[纯虚拟]核心bada接口是否基于C+的不当使用而构建+;构造? 几年前,我浏览了刚刚发布的三星BADA SDK和相关资料,我惊讶于“教程”和“指南”的数量,试图通过在C++语言层中有明显错误的错误构造的样本来澄清语言和平台的各个基本方面。(也就是说,见三星发布的演示文稿第8页和第9页,代码示例是原创的,我在SDK中也看到过类似的东西)。但它相对较新,所以我想他们会清理它,c++,language-lawyer,bada,C++,Language Lawyer,Bada,最近有一件事让我想起了一件不能被当作“打字错误”或“意外错误的代码示例”而忽略的事情: 虚拟结果Osp::Base::Collection::IList::Add(const Object&obj)[纯虚拟] 参数: [in]obj要添加的对象 备注: 此方法执行浅层复制。它只添加指针,而不是元素本身。 ..… 虚拟对象*Osp::Base::Collection::IList::GetAt(int-index)[纯虚拟] 对我来说,从“经典C++”的角度来看,这是一个明显的错误。它在很多方
参数:
[in]obj要添加的对象
备注:
此方法执行浅层复制。它只添加指针,而不是元素本身。
..…
虚拟对象*Osp::Base::Collection::IList::GetAt(int-index)[纯虚拟] 对我来说,从“经典C++”的角度来看,这是一个明显的错误。它在很多方面都是错误的:
new
分配MyObj* x = new MyObj();
list.Add(*x); // the '*' is at least mighly misleading..
这就引出了一些令人惊讶的问题,比如说,这个可怜的人真的很困惑。但是我开始离题了对我来说,它看起来是由一个受过训练的人设计的,比如java或C++,对C++语言的了解很少。Const被滥用,引用也是如此。而且,我也不认为<强>任何理由< /强>这个* /p> 我的判断错了吗?你知道为什么这些接口是这样设计的吗?确切地说,我想解释一下:
- 为什么他们使用“const”,而它不是真正的意思,也不是保留的
- 为什么他们在评论中使用了未被使用的引用语
Add(*ptr)
,因此很容易注意到引用肯定可以为空
编辑/提问理由:
在Mike发表了即时且内容明确的评论后,我试图尽可能多地删除文本中的“rant”,这很可能是因为我有时会产生“纯粹主义”情绪。尽管如此,如果不听起来像是在抱怨错误,就很难提出错误。我不是bada开发者。我没有任何真正的理由咆哮。我的问题不是修辞性的:我真的想知道这种设计的原因。我不接受简单的“因为这个/那个开发人员是坏的”。这是可能的,我也想到了,但我拒绝这样的推理,因为我不是无所不知的,因为,嗯,那是完全不可能的。我这么问是因为这让我很困扰,我想知道原因。我希望一些有经验的bada开发人员会出现,并向我指出一些我无法用谷歌搜索到的描述它的文章,或者删除一些历史信息,这些信息将实际证明这是从pre-std-C++Symbian借用来的。我不指望快速反应。事实上,我认为这个问题不会得到回答,因为地球上可能没有多少人能够提供这样的信息。然而,这并不意味着这个问题是修辞性的,在我看来,也不意味着它是非问题性的。当然,每个人都有不同的看法。如果是,它将关闭。是
这根本没有很好的工程理由。C++的标准化是一个典型的ISO过程,开放性和文档化。有数千份公开文件可用,许多专家与社区密切相关。自从STL集成到标准C++中,这种特殊的样式已经被弃用,1996。
更糟糕的是,这些BADA集合不给标准C++添加功能,所以它们是非常冗余的。p>
商业原因可能是所有优秀的三星工程师都在编写真实代码,而不是Bada。这是,我很抱歉这么苛刻,业余水平 你有具体的问题吗?我能从你的漫谈中得到的只有(a)为什么常数的正确性有点不可靠?(b) 他们为什么决定存储指向外部管理对象的指针?(c)为什么他们使用指针,在那些你更喜欢引用和引用的地方,你更喜欢指针?我想他们需要C++的灵活性,但是java的方便性。但谁真的在乎呢?我想,