c++ static_const函数调用_名字空间

时间:2021-08-30 19:30:00

static

1: C语言static的功能适应于C++;
2: static 修饰c++的静态成员:
权限: static 数据类型 名称;
相当于类::静态变量,它是一个纯粹的变量,全局唯一,分配在数据段上;
3: static 修饰c++的静态函数
相当于类::函数,它是一个纯粹的函数,与类型实例无关,所以也不会有this指针,不能访问实例的数据成员。
4: 权限修饰符号决定了访问的权限;


  • c++也可以有独立的函数;
    • c++ static_const函数调用_名字空间
  • static
    • static也是只能在模块内部使用;
    • static 静态全局变量,和静态局部变量;
    • c++, 静态数据成员,静态成员函数,
  • 静态数据成员:
    • 一个全局变量:类名::变量名,全局变量–>数据段上;
    • 权限修饰:
      • public,外部可以使用,
      • 使用静态全局变量,和普通的变量不一样,对象实例;
      • 在类里声明,在外部定义
      • c++ static_const函数调用_名字空间
      • private只能内部使用,……..
      • c++ static_const函数调用_名字空间

静态成员函数

  • 实际上就是一个普通的c++函数,类名::函数名
  • 它和普通的成员函数是不一样;
  • 类的实例.成员函数()–>实例–>this,;
  • 静态函数不需要类的实例,当然在静态函数里面也没有所谓的this
  • c++ static_const函数调用_名字空间
  • 如果是在类的内部,可以省略,但是不建议这样的写法,因为代码是给开发人员看的
    • c++ static_const函数调用_名字空间
    • 这样写开发人员就能够知道是个静态成员变量;
    • 如果是声明在外面;
    • c++ static_const函数调用_名字空间

const

1: C语言里面的const也同样适用于c++;
2: C++语言里面const 修饰成员函数,表示该函数不会修改任何数据成员,一旦你一个const修饰的函数里修改数据成员,编译器会报错;


  • const:指的是这个函数里面,不会修改任何实例对象的数据成员,编译器会强制你不去修改这个,一旦修改,编译器马上报错;
  • 减少代码维护的负担,如果你不会有成员变量的改变,一定写上const
  • c++ static_const函数调用_名字空间
  • const函数实现在外部 要加上const
    • c++ static_const函数调用_名字空间
    • -

c++函数调用

1: C++调用成员函数:
隐式调用:实例.成员函数;
显示调用: 实例.类::成员函数;
2: C++ 普通函数, 和C的语法是一样的,但是参数传递不一样,C++的普通的函数调用叫做 stdcall,
C的函数调用叫做__cdecl
3: C++的成员函数调用,要先传递this指针,所以叫做thiscall
4: C++调用C的函数,加上 extern “C” {}, 使用C的方式来调用;
4: __cplusplus宏,区别编译器是C或C++;
6:C函数的代码模块供c/c++调用的头文件定义方式;


  • c++函数调用,实例.成员函数;
  • 传递this指针,–>thiscall方式
    • c++ static_const函数调用_名字空间
  • c++可以调用普通的函数;
  • stdcall方式
    • c++ static_const函数调用_名字空间
  • c++调c的函数,强制要求c++编译器按照c的方式调用;
  • __cdecl方式
    • c++ static_const函数调用_名字空间
  • c语言编写的代码模块,要给c++使用怎么办呢?
    • c++ static_const函数调用_名字空间
    • c++ static_const函数调用_名字空间
    • c++ static_const函数调用_名字空间
  • __cplusplus 宏是C++的编译器的判定
  • C编译器来include,还是C++编译器来include
    • c++ static_const函数调用_名字空间
    • 即可给c编译器用还可以给c++编译器使用
    • -

名字空间

1: 名字空间的作用: 多方合作的时候,难免会有重名,名字空间能解决这个问题;
2: 定义名字空间 namespace 名字 { C++代码定义在这个主体}
3: 使用名字空间:
显示的使用名字空间::xxxxxx
using namespace XXXXXX, 添加名字空间到搜索路径,在查找的时候,就会到你设置的名字空间下查找;
4: 名字空间的意义: 让我们的命名,更规范,更合理, 如果我们写底层库给别人使用,一定要
加上名字空间,这个是对自己负责,也是对别人负责;


  • 每个厂商有自己的名字空间,这样的话提供给其它人使用的时候,不会和陌生的厂商冲突;
    • c++ static_const函数调用_名字空间
  • 每次在前面加上名字空间,我们觉得有点麻烦;
  • 隐式的使用;
  • using namespace XXXX;
  • c++ static_const函数调用_名字空间

总结

1: 理解类的static关键字的作用;
2: 理解类的const关键字的作用;
3: 掌握c++的函数调用和C的函数调用的方式;
4: 掌握_cplusplus
5: C++调用C代码;
6: 掌握名字空间;


–》源代码