C++ 易错概念汇总

由于最近实习公司所在的部门主要语言是C++,于是系统的学习了C++相关语法,在此记录下自认为需要了解的知识点。

(一)C++引用 vs 指针

引用和指针很容易混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。

  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。

  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

(二)C++的类访问修饰符

C++的访问修饰符包括public、protected、private。一个类可以有多个public、protected或private标记区域。成员和类的默认情况访问修饰符是private。

公有(public)成员:公有成员在程序中类的外部是可访问的。

私有(private)成员:私有成员变量或函数在类的外部是不可访问的,甚至不可查看的。只有类和友元函数可以访问私有成员。

受保护(protected)成员:受保护成员变量或函数与私有成员十分相似,但有一点不同,protected成员在派生类(即子类)中是可访问的。

继承中的特点

有public、protected、private三种继承方式,它们相应地改变了基类成员的访问属性。

  1. public继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:public, protected, private。
  2. protected继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:protected, protected, private。
  3. private继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:private, private, private。

(三)C++ this指针

在C++中,每一个对象都能通过this指针来访问自己的地址。this指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。

友元函数没有this指针,因为友元函数不是类的成员。只有成员函数才有this指针。

(四)C++类的静态成员

如果把函数声明为静态的,就可以把函数与类的任何特定对象独立开来。静态成员函数即使在类对象不存在的情况下也能被调用,静态函数只要使用类名加范围解析运算符 :: 就可以访问。

静态成员函数只能访问静态成员数据、其他静态成员函数和类外部的其他函数。

静态成员函数与普通成员函数的区别

  • 静态成员函数没有this指针,只能访问静态成员(包括静态成员变量和静态成员函数);
  • 普通成员函数有this指针,可以访问类中的任意成员。

 

你可能感兴趣的:(C++,c++,编程语言)