C++的入门基础知识

时间:2021-04-03 20:00:03

今天简单的介绍一下C++的入门基础知识,包括C++代码的基础以及指针与引用。

1、命名空间

命名空间用花括号将文件代码的一部分括起来,变成一个域。用namespace关键字开头组成名字,类似于类的命名。

namespace name1

{

int i=0;

}

使用命名空间中的元素时要使用作用域解析符:::,例如

name1::i=4

在编写C++代码时,我们需要在代码之前使用std命名空间,因为标准C++库是在std命名空间中被定义的。

所以编写代码有两种方式(1)在代码最前面加上using namespace std;

     (2)在代码中使用std::来使用C++库中的成员

对于命名空间的详细介绍参见:http://blog.chinaunix.net/uid-26404477-id-3088450.html

下面举一个简单的C++代码例子

#include<iostream>
using namespace std;
int main()
{
int i = 4;
cout << "i=" << i << endl;
system("pause");
return 0;
}


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

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

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

endl是换行操作符;

他们都属于C++标准库,所以都在std的名字空间里面。

上面那个例子就运用了cout和<<。C++中的cin和cout类似于C中的scanf和printf,但运用有所不同。

格式化出入与输出详见:http://c.biancheng.net/cpp/biancheng/view/2227.html


3、C++中的重载

重载是指在同一作用域中,函数名相同,函数参数不同(类型不同或个数不同),与函数返回值无关。

#include<iostream>
using namespace std;

void fun(int a, int b);
void fun(float a, int b);
void fun(int a, int b, int c);
int main()
{
int i = 4;
cout << "i=" << i << endl;
system("pause");
return 0;
}

C中不能重载函数,但是C++却可以,是因为C++的函数命名有一套自己得标准,并不仅仅依靠自己设定的函数名,而是与函数参数类型以及函数参数个数有关。

C++代码编译中编译器自动生成函数名再运行。

详细介绍可以打开链接:http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html


4、C++缺省参数

C++中编写函数可以运用缺省参数,即在函数参数处给出参数值。

(1)全缺省参数

void fun(int a=4,int b=5)
{
return a+b;
}
(2)半缺省参数

void fun(int a, int b=5)
{
return a+b;
}

函数中如果有缺省参数,要么全缺省,要么半缺省,半缺省时只能缺省右边的参数,而且要参数连续,下面这两个函数参数是错误的。

C++的入门基础知识

5、指针和引用

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

定义的格式为:

类型 &引用变量名 = 已定义过的变量名;

引用的特点:

a. 一个变量可取多个别名

b. 引用必须初始

c. 引用只能在初始化的时候引用一次,不能改变为再引用其他的变量。

int main()
{
int i=5;
int &j=i;
return 0;
}
在上述程序中,j是i的引用,即j是i的别名。

(1)引用可以做参数,可以提高效率,可以在函数内部改变变量的值。

const可以修饰引用:

C++的入门基础知识

(2)引用可以做返回值,在我的博客C++函数优化中有提到:http://blog.csdn.net/zoctopusd/article/details/74157214

引用做返回值时,返回的是别名,即临时拷贝,可以提高效率,但是也要小心使用,以下几种情况需要注意:

a.当变量为局部变量,即出了作用域不存在时,不能返回引用

b.当局部变量用static修饰时可以返回引用

c.临时变量不能返回引用

(3)引用与指针的区别与联系

a. 引用只能在定义时初始化一次,之后不能改变指向其它变量(从一而终);指针变量的值可变。

b. 引用必须指向有效的变量,指针可以为空。

c. sizeof指针对象和引用对象的意义不一样。sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小。

d. 指针和引用自增(++)自减(--)意义不一样。

e. 相对而言,引用比指针更安全。

总结一下:

指针比引用更灵活,但是也更危险。使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置0,否则可能存在野指针

问题。