社区
硬件/系统
帖子详情
100分 求助关于编译器如何处理static,public,private问题!
SakyaMuni
2004-09-07 08:59:56
1:编译器是如何处理static方法的?
2:编译器是如何处理static变量的?
3:public, private这样的关键字应用于类,方法,变量 编译器是如何处理的?
注:
1:能写出任何一个都可以
2:自己理解的也行
...全文
119
8
打赏
收藏
100分 求助关于编译器如何处理static,public,private问题!
1:编译器是如何处理static方法的? 2:编译器是如何处理static变量的? 3:public, private这样的关键字应用于类,方法,变量 编译器是如何处理的? 注: 1:能写出任何一个都可以 2:自己理解的也行
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangshengyu
2004-09-10
打赏
举报
回复
public, private 这些不需要处理,在语法检查中通过就行了。
DentistryDoctor
2004-09-10
打赏
举报
回复
<Inside C++ Object Mode>/<深入c++对象模型>
DentistryDoctor
2004-09-10
打赏
举报
回复
强烈楼主阅读C++对象模型,这可是大师名作哟。
Pipi0714
2004-09-10
打赏
举报
回复
public:自由访问:
private:类本身以及友元函数可以访问
static:不用类的对象调用,只需类名:函数名即可
roger_ding
2004-09-10
打赏
举报
回复
注:下面的都是针对VC6编译器的
1. static方法,应用于类里面的成员函数其实等同于全局函数,即不需要对象,可以直接调用,那么编译器在遇到程序调用这类函数时,就会判断调用者有没有传入对象指针,如果没有,ok!有,就报错!编译方法就当全局函数来编译了
2. static变量,这个变量的地址是启动初就分配好的,其实它的地址处于文件内部,当文件载入内存时,static变量的地址也就确定了(如果需要,是必须重定位的!)那么不管是全局的static还是类的static,编译器的处理方法都是一样的,而且类的static必须在外面再声明一次就是这个道理!(必须在编译的时候就确定地址,而类是缥缈的)
3. public, private这样的关键字,编译器不做任何特殊处理,只是在编译的时候用来判断调用是否合法,在编译成code以后,是不存在public, private这样的分别的!
注:都是我个人理解!
roger_ding
2004-09-10
打赏
举报
回复
static方法是可以访问类的static变量的,还可以不定义类的对象,直接访问类的成员函数。
我前面讲的是编译器的动作,而不是程序逻辑,注意这是两个概念,
那么对于编译器而言,static最终是被编译成全局函数的模型!
shangjun
2004-09-10
打赏
举报
回复
static方法我理解的和roger_ding(海天一色)不一样
static方法是为了访问类的static变量的接口
allenq
2004-09-07
打赏
举报
回复
kao, 编译原理啊...
MATLAB
编译器
基于MATLAB 2018b版本介绍MATLAB
编译器
。介绍如何利用
编译器
将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。 所在套餐:MATLAB核心知识点系列课程-CSDN程序员研修院,不断更新和增加...
java中
public
static
_Java中
public
,
private
,final,
static
等概念的解读
作为刚入门Java的小白,对于
public
,
private
,final,
static
等概念总是搞不清楚,到底都代表着什么,这里做一个简单的梳理,和大家分享,若有错误请指正,谢谢~访问权限修饰符
public
和
private
是访问权限修饰符,用于控制外界对类内部成员的访问。
public
:表明对象成员是完全共有的,外界可以随意访问。
private
:表明对象成员是完全私有的,不容许外界的任何访问。具体关于...
几个关键字用法(
public
、
private
、protected、
static
、this、super、instanceof)
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。1. 调用方式不同:成员方法 对象名点方法名(同一个类中可以省略对象),静态方法 类名点方法名 (同一个类中可以省略类名)因此 如果在对象未创建实例时,在静态方法中调用了非静态成员方法 就是非法的,所以
编译器
会在这种时候报错!2. 加载时期不同:静态方法是随着类的加载就会加载静态变量和静态方法,成员方法是随着创建对象调用方法时加载。静态方法可以在没有创建实例时使用,非静态的成员变量是一个对象属性,它只有在对象存在时引用。
Java中
public
,
private
,final,
static
等概念的解读
public
final
static
和
public
static
final 都表示共有的静态常量,完全一样,没有不同。 推荐写法是
public
static
final。 题外话: 在接口中定义一个常量,就算是不定义成
public
static
final,其实
编译器
也帮你加好了。 你在接口中定义一个 String a = “hehe”; 他的字体已经被
编译器
认为是常量了。 见代码:
public
interface DemoInterface { String a = “hehe”; } pu
轻松理解Java中的
public
、
private
、
static
和final
轻松理解java中的
public
、
private
以及
static
和final的联系和区别
硬件/系统
2,641
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章