C++ 类相关

来源:互联网 发布:sai软件官方下载 编辑:程序博客网 时间:2024/06/05 04:34

静态成员

  • 若在类中定义了静态数据成员,即使不定义对象,也为静态数据成员分配空间。
  • 静态数据成员在程序开始时分配空间,程序结束时释放空间。
  • 静态数据成员的初始化只能在类外进行,并且不能通过参数初始化表进行初始化。
  • 若静态数据成员被定义为private,则不能在类外直接引用,必须通过公用的成员函数引用。
  • 对静态数据成员的引用,既可以通过对象名,也可以使用类名,如:
a.height;Box::height  // height是Box类的静态数据成员,a是Box类的一个对象

静态成员函数

  • 静态成员函数和非静态成员函数的区别在于:非静态成员函数有this指针,而静态成员函数没有this指针;静态成员函数主要用来访问静态数据成员,如果一定要引用本类的非静态成员,应该加对象名和成员运算符。
    比如,静态成员函数有以下语句:
 cout << height << endl;   //height 是静态数据成员 cout << a.width << endl;  //width 是非静态数据成员

友元

  • 友元函数
    友元函数在引用类的私有数据成员时,必须加上对象名,因为友元函数不是类的成员函数,没有this指针。
  • 友元成员函数
    • 友元成员函数在引用本类数据时,可以不必使用对象名,但是在引用其他类的数据时,必须加上对象名。
    • 一个函数可以被多个类声明为友元函数。
  • 友元类
    • 友元类是单向传递,而非双向。
    • 友元类的关系不能传递。
0 0