c++ 散乱学习之关键字

c++ 中基础语法

public 和 private

分为成员变量成员函数的和继承。

对于变量和函数来说:

public是类的成员函数,类的实例变量都可访问;private是类的实例变量不能访问,但是优元函数,变量可以访问。

对于继承来说:

派生类的成员函数,可以访问基类的public成员、protected成员,但是无法访问基类的private成员。(意思就是无法直接修改基类的private变量)

派生类的实例变量,可以访问基类的public成员,但是无法访问protected、private成员。

在我们的class attentionlight里,所有变量都是private的,不需要外部修改访问。细节实现逻辑函数都是private,不需要暴露。new 函数 set函数 transform函数是public的。外部接口调用。

static

https://blog.csdn.net/hhg337372083/article/details/89213878

static修饰变量

只初始化一次,在运行前就初始化了。生命周期是程序运行结束才释放的。

被 static 修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要 new 出一个类来,

类中static 变量独立于类的任意一个对象,其值修改被类的所有对象看到

static数据成员必须在类定义的外部定义,通常放在包含类的非内联成员函数定义的文件中。

但是也有例外,const static 数据成员可以在类的定义体中进行初始化,因为const定义时必须初始化。

static修饰函数

static 修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用

被 static 修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要 new 出一个类来

“ 为什么 ”static成员函数由于不与任何对象关联,因此它不具备this指针,因此,它无法访问属于类对象的非静态数据成员,也无法访问
非静态成员函数。也就是说,类的静态成员函数,只能调用该类的其它静态成员函数和静态数据成员。 但是在我们的工程里面有 static New呢

http://legendtkl.com/2014/09/30/cplusplus-static-and-virtual/

const

  1. 限定变量为不可修改。

  2. 限定成员函数不可以修改任何数据成员。

  3. const与指针:

    const char *p 表示 指向的内容不能改变 ; char * const p,就是将P声明为常指针,它的地址不能改变,是固定的,但是它的内容可以改变。

https://blog.csdn.net/shihuboke/article/details/79286669

virtual

感觉是方便子类进行多态的

override

https://blog.csdn.net/i_chaoren/article/details/77281785

防止子类在继承时,没有重写覆盖父类函数。仅在成员函数声明之后使用时才是区分上下文的且具有特殊含义;否则,它不是保留的关键字。使用 override 有助于防止代码中出现意外的继承行为。

typename