神秘莫测的C++
因为我们专业是网络工程所以从大一开始就与C++无缘,但是在大一第二学期的时候我们在学校里学了一学期的Java,虽然没有缘分学习C++但是总觉得这两者之间有这千丝万缕的关系(都是面向对象的语言)。听学长学姐说C++应该是最难的一门课了,作为C++初学者的我就只能尽力喽..以下是我个人对C和C++的一点认识,如果有偏差的地方希望大家多多理解啦...
@C++关键字
我们知道在C语言中它的关键字有32个之多,当时我就觉得怎仫会有这仫多的关键字呢?晕...今天就让我们来看看C++里面的关键字吧...
@C++的名字空间
名字空间解决全局命名冲突的问题
标准C++库里的所有组件都是在一个被称为std的名字空间里声明和定义的;在标准C++的平台上使用标准C++库时有两种方式:
1).只需要写一个using指示符就可以了,using namespace std;
2).std::成员的方式也可以, ::作用域解析符
自定义名字空间
1).名字空间相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来;
2).可以在C++的名字空间std中添加新的变量( 一般很少这样做);
3).支持在不同的空间节里写相同的名字空间;
好了说了这仫多如何使用名字空间呢?下面我们就一个C中老生长谈的代码"Hello world"来理解上述名字空间的使用:
#include<iostream>
namespace B1
{
int a=10;
}
namespace B1
{
int b=20;
}
namespace B2
{
int a=100;
}
using namespace std;
using namespace B1;
using namespace B2;
int main()
{
cout<<B1::b<<endl;
cout<<B1::a<<endl;
cout<<B2::a<<endl;
std::cout<<"hello world"<<endl;
cout<<"hello world"<<endl;
system("pause");
return 0;
}
它的输出结果是什仫呢?当然20 10 100 hello world hello world 啦..
@C 和C++的输入输出对比
cout 标准输出流对象,<<输出操作符
cin 标准输入流对象, >>输入操作符
endl 换行操作符
都属于C++标注库,在名字空间std里
@C++的函数重载
在同一作用域,一组函数的函数名相同,参数列表不同(个数不同/类型不同),返回值可同可不同
为什仫会有 extern C ?
在C++语言中支持重载,而C中不支持重载,所以C++和C的命名规则不同,当C和C++共同在同一个函数中时就要使用extern C, 说明extern C 其后使用的函数是使用C的命名规则
比如下列代码在C中是不允许的,而在C++中因为可以重载是允许使用的:
int Add(int x,int y)
{
return x+y;
}
float Add(float x,float y)
{
return x+y;
}
好了今天的总结就到这里了,总结的不太全面希望读者理解啦...