社区
非技术区
帖子详情
设计和正在完善C++的人,真是天才,我到今天终于明白为什么要引入命名空间了!
HaoGeGe
2001-12-13 01:20:42
...全文
375
26
打赏
收藏
设计和正在完善C++的人,真是天才,我到今天终于明白为什么要引入命名空间了!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ifrank
2001-12-17
打赏
举报
回复
我还原以为是纯粹象java的package借鉴的呢,呵呵
hehe214
2001-12-15
打赏
举报
回复
呵呵
longzhifang
2001-12-15
打赏
举报
回复
长知识了
谢谢
HaoGeGe
2001-12-14
打赏
举报
回复
我没用过java所以也不知道他的包.
但是我可以肯定命名空间和泛型有着必然的联系.
思考是一种生活态度.代表着积极向上.
正因为C++首先是一种思想,然后是一种语言,
所以我们在思考的层次,范围,深度上,也应该和其他语言区别开来.
没有命名空间就无法引入泛型编程.
Scott Meyers是个保守主义者,他恨不得把STL也赶出C++
但是,Bjarne Stroustrup毕竟看到了泛型编程的光辉前景,
他让C++成为了泛型编程的最佳工具,是非常明智的!
这也让C++本身成为了一种崭新强大的语言!
遥遥领先!
遥遥领先!
遥遥领先!
ifrank
2001-12-14
打赏
举报
回复
java的包和命名空间有什么大的异同点?
peifang
2001-12-14
打赏
举报
回复
我也觉得搞笑,没有必要神化它。不是什么东西都需要上升道理高度。
halfdream
2001-12-14
打赏
举报
回复
还得再继续想想.路漫漫....
ed9er
2001-12-14
打赏
举报
回复
搞笑!
babysloth
2001-12-14
打赏
举报
回复
奇怪,命名空间怎么跟泛型扯上关系了?
Java的包也是一种类似的机制,Java没有泛型吧?
不明白,什么是真正的顿悟?是不是想太多,想太复杂了?
HaoGeGe
2001-12-14
打赏
举报
回复
记得大三时(94年)第一次接触C++从张国峰的那本
也体会不到什么.
ttoomm
2001-12-14
打赏
举报
回复
`
HaoGeGe
2001-12-14
打赏
举报
回复
让我们回到原点,想想泛型编程的核心是什么.
是算法独立于数据结构,他通过这样的机制来实现代码重用.
这和OOP的代码重用是完全不同.
那么也就是说,算法不能依存于任何数据结构.
但是我们也不能让算法,变成撒开了的豆子,
我们需要一个东西他可以把算法的作用域进行限定,
但是他又不能是数据结构.
想想如果我们用类的静态成员的方式去封装算法的话,
那我们的算法就将和这个类存在割舍不开的关系.
然而,这就和泛型编程相矛盾了.
于是,C++的天才们就设计出来了一个满足这样
要求的东西.
哈哈,C++首先是一种思想,然后是一种语言,
真是相对其他语言来说,博大精深啊!
hg0001
2001-12-14
打赏
举报
回复
学而时习之,不亦说乎!有朋自远方来,不亦悦乎!不知而不愠,不亦君子乎?
babysloth
2001-12-14
打赏
举报
回复
不用谢。
yug
2001-12-14
打赏
举报
回复
学习学习
hahaha88
2001-12-14
打赏
举报
回复
不要光一个人顿悟啊!?为什么要用命名空间啊?能不能给我们讲讲?嘻嘻
我一看到别人顿悟,我就非常着急:这个差距不是拉的更大了嘛!
我还没有弄懂,别人已经顿悟了,唉。。。哈哈哈哈哈
HaoGeGe
2001-12-14
打赏
举报
回复
谢谢您!
babysloth
2001-12-14
打赏
举报
回复
不敢当,C++也不见得比BASIC高一等,那要看你的评价标准。
从易学易用的角度来说,BASIC就是要高一等。
D&E大概说了这些:
我们都知道C++里的extern "C" {...}
在C++设计之初,Stroustrup博士就考虑过extern XXX {...}来实现命名空间,不过没有实现。
1991年,Microsoft的Keith Rowe提出bundle XXX {...};作为命名空间
后来又有人提出 :: XXX :: {...};的方式。
虽然这两者都没有被接纳为标准,但基本的语法结构以及操作符::却已固定下来。
1993年7月C++标准正式接纳了namespace,11月决定在标准库中使用namespace。
STL出现的标志是Alexander Stepanov和Meng Lee于1994年8月在HP实验室的技术通讯上发表The Standard Template Library,后来提交给C++标准委员会。
HaoGeGe
2001-12-14
打赏
举报
回复
无缘读过D&E,
关于Stroustrup博士在里面清楚地写明了namespace的设计动机,还望不吝赐教之.
你误会我了,我并不认为用C++的人比用Basic的高一等.
我只是认为C++比Basic高一等
babysloth
2001-12-14
打赏
举报
回复
每个人都有自己的看法,不奇怪。
但是我建议您看看D&E,Stroustrup博士在里面清楚地写明了namespace的设计动机。
命名空间与泛型没有必然联系。
胡思乱想不是积极向上。
C++首先是一种语言,包含了很多思想。
用C++的人并不比用Basic的高一等,不要自欺欺人。
Scott Meyers是C++顶级大师,不是保守主义者,他才出了一本Effective STL。
C++不见得是表述泛型最好的工具,虽然现在算是,但以后一定有更好的。
加载更多回复(6)
C++
中“
命名空间
”和带“.h”、不带“.h”的头文件的关系。为什么
引入
头文件后还需要
引入
命名空间
?
命名空间
内是什么?
文章摘自:https://blog.csdn.net/u013162593/article/details/22823425 引言: 问题:学习过C,然后再学
c++
的人可能会这么问,我#include之后,不就是把头文件拉进来了吗,而cin cout等函数不就是iostream.h里面的函数吗,我使用cin cout时,编译器为什么会说 “Error 未定义标示符”呢? 解决方法:这样写 #include<iostream> using namespace std; void main().
ROS之
命名空间
已经学ROS快两个月了,一开始对ROS
命名空间
,参数,参数服务器,重映射没认真看,后来发现很重要,它是学习ROS代码的基础。我们都知道ros以topic通信,但是只靠topic通信是远远不够的,于是使用客服端服务器、actionlib、参数服务器来补充,这几种都是通信的机制。但还不够,为了方便又加入了
命名空间
,重映射。只有清楚了这些,其实才算对ros有了初步了解,下面的几个文章我将分别介绍。
什么是
命名空间
为什么
C++
需要使用
命名空间
引言: 问题:学习过C,然后再学
c++
的人可能会这么问,我#include<iostream>之后,不就是把头文件拉进来了吗,而cin cout等函数不就是iostream.h里面的函数吗,我使用cin cout时,编译器为什么会说 “Error 未定义标示符”呢? 解决方法:这样写 #include<iostream> using namespace std; void main() { } .
【是
C++
,不是C艹】 第一个
C++
程序 |
命名空间
| 输入输出
给
C++
打个招呼吧!!!
(笔记)什么是
命名空间
为什么
C++
头文件有的要加.h有的不用加.h
引言: 问题:学习过C,然后再学
c++
的人可能会这么问,我#include之后,不就是把头文件拉进来了吗,而cin cout等函数不就是iostream.h里面的函数吗,我使用cin cout时,编译器为什么会说 “Error 未定义标示符”呢? 解决方法:这样写 #include using namespace std; void main() {
非技术区
15,445
社区成员
58,111
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章