类的常成员、静态成员和友元学习笔记
来源:互联网 发布:cd设计软件 编辑:程序博客网 时间:2024/06/12 03:25
1. 常成员
Class A
{
……………..
int k;
const intM; //常数据成员
intg()const; //常成员函数
A();
};
const A t; //常对象
(1) 常数据成员
必须通过初始化列表对该数据成员进行初始化,例如A::A():M(100) {}
(2) 常对象
该对象的全部数据成员为只读
例如:t..k原本为1,执行t.k=3则会出错
(3) 常成员函数
该成员函数的this指针被约束为指向常量的常指针
例如:int A::g()const
{
return k++; //报错,不能修改数据成员
}
常成员函数的this指针类似于: const A * const this;
2. 静态成员
Class B
{
………………..
static intnum; //静态成员函数
static voidfun(); //静态成员函数
……………..
};
B bb;
“静态”是值他的作用域局部于类,一个类可以创建多个对象,因此静态成员提供了一种同类对象的共享机制。
(1) 静态数据成员
勒种声明,类外定义
例如:int B::num=0;
(2) 静态成员函数
没有this指针,因此只能访问类的静态数据成员
普通成员函数由对象激活,而静态成员函数由类或者对象激活
例如: B::fun();
或者 bb.fun();
3. 友元
友元可以访问类的所有成员,包括私有成员,可以是一个普通函数、成员函数或者另一个类
(1) 友元函数
class C
{
private:
int I;
void fun(int);
friendvoid fun2(C *,int);
……………………………..
};
void fun2(C * ptr,int x)
{ ptr->i=x; } //友元函数通过参数访问类的私有成员
void C::fun(int x)
{ i=x; } //成员函数通过this指针访问类的私有成员
(2) 友元类
Class D
{
friend class E;
private:
int x;
};
Class E
{
public:
void set(int i)
{
Dobj.x=i; //若E不是D的友元类,Dobj将不能在这里访问私有成员x
}
private:
D Dobj;
}
- 类的常成员、静态成员和友元学习笔记
- C++类的静态成员,友元和常成员常对象
- 类的 静态/常成员 及 友元
- 常对象及常成员及静态数据成员和静态成员函数的学习内容。
- C++ 类的常成员和静态成员
- 浅谈类的静态成员和友元
- C++学习笔记--类的静态成员变量和静态成员函数
- c++学习之 类中的常成员与静态成员
- C++类的常成员函数以及静态成员函数
- 静态成员与常成员的使用
- 类和对象的基础4——静态成员和常成员
- 友元 函数/类 ;静态成员 及 静态成员函数
- C++类中的常数据成员和静态数据成员的区别
- C++之静态成员和友元
- C++之静态成员和友元
- 静态成员函数和友元
- 06_c++静态成员和友元
- C++ 的友元和静态成员 小解
- 【杭电】[1162]Eddy's picture
- java枚举类型的实现原理
- <<离散数学上机实验>>集合上机实验
- 第117课: Spark Streaming性能优化:如何最大程度的确保Spark Cluster和Kafka链接的稳
- 施用JMX远程监控、管理JVM
- 类的常成员、静态成员和友元学习笔记
- 使用Eclipse创建Maven项目
- Android新建项目选择SDK的区别(MiniMum Required SDK; Target SDK; Compile With; Theme )
- 排序:堆排序
- Unity游戏接入百度移动广告
- 【Light】[1043]Triangle Partitioning
- 解构Unity的腳本物件模型
- iOS中计算UILabel中字符串的高度
- 内部类和匿名内部类比价Mars