您的位置:首页 > 编程语言 > C语言/C++

C++入门基础知识

2017-06-27 21:10 337 查看

1.命名空间

定义:

命名空间域是随标准C++而引入的。它相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它起一个名字:

namespacename1
{
inta = 0;
}
namespacename2
{
inta = 1;
}


标准C++库中的所有组件都是在一个被称为std的名字空间中声明和定义的。在采用标准C++的平台上使用标准C++库中的组件,只要写一个using指示符:

using namespace std; 就可以直接使用标准C++库中的所有成员。

或者 std::成员 的方式也可以使用C++库里的成员。

其中,::是作用域解析符

namespace std  //std是C++标准库的命名空间
{
//标准库成员
}


下面给出一个简单的C++程序:

#include <iostream>
using namespace std;
namespace A1
{
int a = 10;
int b = 100;
}
namespace A2
{
int a = 20;
}
int b = 30;
int a = 50;
int main()
{
int a = 40;
cout<<a<<endl;  //40
cout<<::<<a<<endl;  //50
cout<<A1::a<<endl;  //10
cout<<A2::a<<endl;  //20
return 0;
}


在上述程序中,若前面没有引 using namespace std; 这句话,则输出时应该为:

std::cout<<"hello"<<std::endl;


以表明其所在的作用域。

再给出一个简单程序:

namespace AA1
{
int a = 1;
namespace AA2
{
int a = 2;
namespace AA3
{
int a = 3;
}
}
}

int main()
{
cout<<AA1::a<<endl;
cout<<AA1::AA2::a<<endl;
cout<<AA1::AA2::AA3::a<<endl;
return 0;
}


2.C++基本的输入输出流

cout是标准输出流对象,<<是输出操作符;

cin是标准输入流对象,<<是输入操作符;

endl是换行操作符。

这些都属于C++标准库,所以都在std的命名空间里。

3.函数重载

定义:

函数在同一个作用域内,函数名相同,参数不同【参数类型、参数个数】,返回值可相同也可不同。

下面举一个例子,代码如下:

void f(int i)
{

}
void f(char ch)
{

}


这里两个函数的函数名相同,返回值类型相同,参数个数相同,参数类型不同,属于函数重载。

再举一个例子,代码如下:

void f(int i,char a)
{

}
void f(char a,int i)
{

}


这里的两个函数的函数名相同,返回值类型相同,参数个数相同,参数类型不同,属于函数重载。

那么,在C++中,函数支持重载的原因是什么呢?

因为函数名的修饰规则,即命名规则。

4.缺省参数

全缺省

代码如下:

int Add1(int a = 10, int b = 20)
{
return a+b;
}

int main()
{
cout<<Add1()<<endl;   //30
cout<<Add1(20)<<endl;  //将20传给a,Add值为40
return 0;
}


2.半缺省

代码如下:

int Add2(int a, int b = 20)
{
return a+b;
}

int main()
{
cout<<Add2(10)<<endl;   //将10传给a,Add值为30
cout<<Add1(10,30)<<endl;  //40
return 0;
}


5.指针和引用

引用的定义:

引用不是定义一个新变量,而是给一个已经定义的变量重新取一个名字。

代码如下:

int a = 10;
int& b = a;


此处的b就是a的一个别名,a、b指向同一空间 。

注意:

①一个变量可以有多个别名。

②引用只能在初始化时引用一次。

代码如下 :

void swap(int& l, int& r)

{

int tmp = l;

l = r;

r = tmp;

}


引用的作用:

(1)提高效率

【const引用】

①代码如下:

const int d3 = 1;

const int& d4 = d3;`

②常量具有常性

int d1 = 4;

const int& d4 = d3;

d1 = 5; //d1改变d2的值

const int& d6 = 5;

③隐式转换

double d7 = 1.1;

const int& d8 = d7;

(2)作参数

①值传递

②引用传递

int& Add(int a , int b)

{

int c = a+b;

return c;

}

注意:除了作用域还存在,便可用引用。

(3)作返回值

注意:不要返回一个临时变量的作用,如果返回对象出了当前函数的作用域依旧在,则最好使用引用返回,更高效。

引用和指针的区别:

(1)引用只能在定义时初始化一次,之后不能改变指向其他变量;指针变量值可变。 &
a9b1
nbsp;

(2)引用必须指向有效的变量,指针可以为空。

(3)sizeof指针对象和引用对象的意义不一样。sizeof引用是所指向变量的大小;sizeof指针是对象地址大小。

(4)指针和引用自增(++)自减(–) 意义不一样。

(5)相对而言,引用比指针安全。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++入门基础知识