标准C++(1)

一、引用

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

引用的声明方法:类型标识符 &引用名=目标变量名;

  例: int& num;

 引用类似于起别名

  注意:

  (1)&在此不是求地址运算,而是起标识作用。

  (2)类型标识符是指目标变量的类型。

  (3)声明引用时,必须同时对其进行初始化。

  (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

  (5)引用也可以当作函数的返回值,但绝不能返回一个局部变量的引用。

  (6)引用可以当作函数的参数,它引用的对象就是函数的实参。引用可以达到指针的效果。

扫描二维码关注公众号,回复: 2624682 查看本文章

  (7)引用不光可以引用标识符,也可以引用立即数,但必须加const属性

二、C++的内存管理运算符

在C++中使用 new/delete 来管理内存,new 用来申请内存,delete 用来释放内存。

具体用法如下:

 

#incldue <iostream>
class Student
{
    char name[20];
    char sex;
    short;
};

int main()
{
       Student *stu = new Student;

       delete stu;
}

使用 new 创建结构对象时,会自动调用构造函数,delete 时会自动调用析构函数
  【例】 Student* stu = new Student("hehe");

[]可以配合new和delete申请或释放数组。new[] 不可与delete混用,必须使用delete[]释放

  int* p = new int[10]{1,2,3,4,5,6,7,8,9,10};
  delete[] stu;

三、C++的函数

C++中函数可以在main函数前执行

C++具有函数重载的功能

可以使用同一个函数名,定义多个参数不同(返回值可以不同,前提是参数不同)的函数。

C++中函数的参数可以有默认值,
  1、函数的默认参数必须靠右。
  2、默认参数要尽量少用,因为可能会引起重载错误
  3、默认参数是编译器在编译时帮助赋值的,所以只能由全局变量、静态变量、字面值对参数进行赋值。

int func(int num1= 100,char* name = "abcd")
{
}

void func(char ch,short  num)
{
}

四、名字空间

C++引用了名字空间的机制。
名字空间:把全局的命名空间进一步分割。可以创建出一个个独立的命名空间防止相互之间命名冲突

1、名字空间的定义

        namespace name
        {
            //变量;
            //函数;
            //结构、类;
        }

2、名字空间的合并
  a、同名的命名空间会自动合并
  b、在同一个名字空间中标识符必须是唯一的

3、定义与声明分开

        namespace n1
        {
            //在名字空间中声明函数
            void func(void);
        }
        //在名字空间外定义函数
        void n1::func(void) {}

4、如何使用名字空间中的内容
  a、域限定符(::),直接使用,名字空间::标识符。【例】 ni::func(); 
  b、using namespace 名字空间; 功能是把名字空间中的标识符
  c、using 名字空间::标识符 ,表示此标识符对后面的代码公开。

5、名字空间的嵌套
  名字空间可以嵌套,但使用时要逐层解析。 n1::n2::n3::num

        namespace n1
        {
            namespace n2
            {
                namespace n3
                {
                    
                }
            }
        }

6、全局空间归属为匿名空间
  在全局空间定义的标识符都属于这个匿名空间,匿名空间默认开放。
  如果函数中有同名的标识符把匿名空间中的屏蔽了,可以使用空的域限定符来表示他 ::变量名

猜你喜欢

转载自www.cnblogs.com/unjack/p/9445418.html