C++学习第一天
It has been 1118 days since the last update, the content of the article may be outdated.
今天,在编写第一个C++程序时,出现了一个编译错误:
![1]
以下是原来的代码:
c++
1 |
|
起初并不知道因何而起,因为记忆中《C++ Primer Plus》上明确说明可以使用以下两种形式:
c++
1 | using namespace std; |
和
c++
1 | using namespace std::cout; |
查阅资料后发现,如果想仅使用某个函数,不需要namespace,只需要:
c++
1 | using std::cout; |
即可。个人理解为,namespace既名为命名空间,其一定用于包含整个类库,而非某个函数,而只有using就比较好理解了,是使用此函数。
修改后:
c++
1 |
|
编译成功、运行效果:
![2]
同时,又查了一下,Java中是否有此类实现,因为在之前使用Java时,都是直接使用包名.类名.方法名调用,比如:
java
1 | iPhone X = new com.Apple.getNewDevice(com.Apple.iOS.iPhone); |
资料给出的答案是,在Java中,import的功能在此方面等于using namespace,比如如下Java代码:
java
1 | import com.Apple.* |
至于更深的部分,比如作用域,在此留一个坑,不填,等以后遇到此类项目再议。
最后,通过查阅资料2,发现了一个问题,关于using的使用,还可以如下:
c++
1 | using myAlias = System.Security.Crypography; |
暂不清楚为何,猜测为类引用,先往后学习,可能学习到using的那一章会有详细讲解。
参考资料:
1: using namespace std::cout?
2: Difference between namespace in C# and package in Java
3: java的包和命名空间有什么区别?
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Evyde的生活!


