一.静态成员
1.类中的静态成员分为两种:①数据,②函数。
2.静态数据成员,不能再类内初始化。
class student
{
public:
static int a;
};
int student::a = 10;
3.静态数据成员会在主函数运行之前初始化。
4.静态数据成员,无论共有还是私有都要类外初始化。
5.静态数据成员是公有,可以用作用域运算符来直接访问:类名::静态数据成员
6.静态函数可以操作静态数据成员和静态函数成员,不能操作类中普通成员
7.普通函数也可以对静态数据成员和静态函数赋值和调用。
二.常量成员
1.类中常量成员分为两种:常量数据成员和常量函数成员
2.类中的常量数据成员必须要用初始化列表的方式进行初始化。
3.类中的常量函数成员,这个函数不能对自身变量进行修改。
void fun()const
{}
①只要是this指针所指向的所有数据,在这个函数里面都不可以改
②初始化之外的形参数据,临时变量,不属于this指针的数据都可以改
4.对象被说明为常量对象时,这个对象只能调用常量数据成员和函数
①这个对象里面的所有数据都是不可以被修改的
②可以改对象里面的静态成员,因为静态成员不属于对象
友元成员
1.类的特点是封装,友元是c++为用户打破这种封装的手段
2.友元分为两种:友元函数,友元类。
在函数或类前面加friend
友元函数
#include <iostream>
using namespace std;
class student
{
int a;
public:
friend void fun(student& stu);
student()
{
this->a = 8;
}
};
void fun(student& stu)
{
stu.a = 8989;
cout << stu.a << endl;
}
int main()
{
student stu;
fun(stu);
system("pause");
return 0;
}
友元类
#include <iostream>
using namespace std;
class A
{
int a;
public:
friend class B;
A()
{
this->a = 89;
}
~A()
{
}
};
class B
{
public:
void fun(A& aa)
{
cout << aa.a << endl;
}
};
int main()
{
A aa;
B b;
b.fun(aa);
system("pause");
return 0;
}