一个c程序的执行是从? 静态成员函数为什么不能访问本类中的非静态成员?
浏览量:1873
时间:2021-03-16 05:53:29
作者:admin
静态成员函数为什么不能访问本类中的非静态成员?
程序最终将在内存中执行,变量只有在占用内存中的某个位置时才能被访问。类的静态成员(变量和方法)属于类本身,在加载类时会分配内存,可以通过类名直接访问内存。非静态成员(变量和方法)属于类对象,因此只有在生成类对象(创建类实例)然后通过类对象(实例)访问时才会分配内存。在静态成员中访问类的非静态成员时出错的原因是,当该类的非静态成员不存在时,该类的静态成员已经存在。当然,访问内存中不存在的东西时会出错:类ca{私人:INTA//非静态成员在创建类的实例时分配内存。一个类的不同实例对应不同的内存区域
1。friend函数是一个非成员函数,可以直接访问类的私有成员。它是在类外定义的普通函数。它不属于任何类,但需要在类的定义中声明。声明时,只需在好友名称前添加关键字friend即可。
2. 友元函数可以访问类的静态、私有和公共成员。
3. friend的功能是提高程序的效率(即减少类型检查和安全检查的时间开销)。然而,它破坏了类的封装和隐藏,使得非成员函数可以访问类的私有成员。
一个c程序的执行是从? c++类型转换 数据预处理包括哪些方面
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。