C++入门基础知识

时间:2021-09-23 22:49:05
1.命名空间

在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域的所有标识符,而且其本身也是由标识符表示的。命名空间的使用目地是为了将逻辑相关的标识符限定在一起,组成相应的命名空间,可使整个系统模块化,最重要的是==它可以防止命名冲突==。就好比在两个函数或类中定义相同名字的对象一样,利用作用域标识符限定该对象是那个类里定义的。
使用详列:

namespace name1
{

int a = 0;
}
namespace name2
{

int a = 1;
}
//::是作用域解析符
name1::a = 3;
name2::a = 4;
2.C++基本的输入输出流

cout是标准输出流对象,<<是输出操作符;
cin是标准输入流对象,>>是输入操作符;
endl是换行操作符;

3.重载

重载就是一组函数名相同,参数列表不同(个数不同/类型不同),返回值可同可不同

C++支持重载是因为在汇编语言中给这些同名分别起了不同的名字

// _Z12OverloadFuncid
void OverloadFunc (int x, double d)
{}
// _Z12OverloadFuncdi
void OverloadFunc (double x, int d){}
4.C++缺省参数

分为全缺省和半缺省,
//
int Add(int a = 0,int b = 0)
{
}
//
int Add(int a,int b = 0)
{}

==注意缺省从右到左,左半部分或者最左边的一个的可以不给缺省值==

5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)
概念

指针:指向一个变量的地址
引用:相当于给一个变量另外起了一个名字,并没有创建新变量

使用方法:

指针:

int a = 0;
int *p = &a;

引用:

int a = 0;
int &b = a;
//类型 &引用变量名 = 已定义过的变量名
参数:

引用作为参数,效率很高,直接可以在调用内部进行更改,类似指针

void test(int &a)
{
a=a+1;

}
int main()
{
int a = 1;
int &b = a;
test(b);//test运行完后a的值加一
return 0;
}
当引用作为返回值

传值返回时,是将返回变量的值放到eax寄存器中
传引用返回时,是将返回变量的地址放到eax寄存器中
推论:
1.不要返回一个临时变量的引用
2.如果返回对象出了当前函数的作用域依旧存在,则最好使用引用返回,这样更加高效

指针和引用的区别:

1、引用只能初始化一次,之后不能更改,指针可更改
2、引用必须指向有效的变量,指针可以为空
3、siezeof指针对象得到的是指针对象地址的大小,而引用得到的是指向变量的大小
4、指针自增和引用自增意义不一样
总的来说,引用更安全