千家信息网

class内部处理

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,class A { public: int foo( ) { return val ; } static int staFun( ) { return
千家信息网最后更新 2026年11月01日class内部处理
class A  {  public:      int foo( )  {    return  val ;    }      static int staFun( )  {     return  staVal ;  }      static int staVal ;  private:      int val ;      char bit1 ;  } ;    class B : public A  {  public:      char foo( )  {    return  bit2;    }  private:      char bit2 ;  };

静态数据成员:

它被编译器提出于class之外,并被视为一个global变量(但只在class生命范围之内可见)

每个静态数据成员只有一个实体,存放在程序的数据段之中,

经由'.'运算符,对一个静态数据成员进行存取操作,只是语法上的一种便宜行事而已。静态数据成员其实并不在class object之中,因此存取它并不需要通过class object。

虽然你可以不靠class object 来存取一个静态成员,但其存取函数却得绑定于一个class object之上。(若静态成员的访问控制为protected或private,则必须通过存取函数来访问)

【注意:】类的静态数据成员,必须要在全局下进行定义,然后才能使用。

无论它的访问控制是什么,必须在main函数之前,对静态数据成员定义。

例如:int A::staVal = 0 ;

否则,编译器会报错:未定义的引用。

因为编译器把涉及静态数据成员的使用,都转换为直接使用,而静态成员在class中声明,外部无法看见。故需要在外部进行定义,使其后的代码可见。

成员函数的处理:

C++的设计准则之一:非静态成员函数至少和一般的外部函数有相同的存储效率。

C++编译器会把成员函数内化为一般的函数:

①改写函数原型,安插一个额外的参数this指针。用以提供一个存取管道,使类对象得以调用该函数。

int A::foo (A* const this)

若该成员函数是const,则变成:

int A::foo (const A* const this)

②对函数体中 类对象的非静态数据成员的存取操作,改为经由this指针来存取。

int A::foo (A* const this)

{ return this->val ; }

③将成员函数重新写成一个外部函数,对函数名称进行处理,使它在程序中成为独一无二的。

以上的转换操作结束之后,每个调用操作都要转换。

A objA ;  A * ptr = & objA ;    ptr->foo( ) ;   objA.foo() ;  //分别被转换为:  foo_intA( ptr ) ;  foo_intA( & objA ) ;

静态成员函数:

静态成员函数的主要特征是它没有this指针。

故其:

①它不能够直接存取其class中的非静态成员

②它不能够直接被声明为const、virtual

③它不需要经由class object才被调用--虽然大部分时候它是这样被调用的。


成员 函数 静态 数据 存取 编译器 编译 指针 处理 之中 对象 程序 C++ 控制 便宜 相同 便宜行事 独一无二 代码 全局 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 互联网科技巨头监管 金融科技 互联网金融 易互联网科技有限公司 西安互联网科技公司 互联网科技股午盘股票涨跌 北京三清互联网科技 宁波青枫互联网科技有限公司 互联网科技中介 华服互联网科技官网 长沙互联网科技 山东有哪些互联网科技公司 上海钢联属于互联网科技股吗 宇信科技在杭州互联网排第几 上海同邻互联网科技有限公司规模 萌小萌互联网科技河南有限公司 互联网科技企业商标注意事项 北京互联网科技类企业分布 美国五大互联网科技公司市值多少 互联网科技创业计划的风险分析 互联网科技开发公司 未来的互联网科技 互联网 新科技 互联网校园科技培训 昊天互联网科技有限公司 千方科技属于互联网企业吗 扫呗互联网科技有限公司 好易买互联网科技 青岛易易互联网科技 黑龙江互联网科技公司
0