社区
硬件/系统
帖子详情
100分 求助关于编译器如何处理static,public,private问题!
SakyaMuni
2004-09-07 08:59:56
1:编译器是如何处理static方法的?
2:编译器是如何处理static变量的?
3:public, private这样的关键字应用于类,方法,变量 编译器是如何处理的?
注:
1:能写出任何一个都可以
2:自己理解的也行
...全文
168
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, 编译原理啊...
C++访问控制:
public
、
private
、protected的封装艺术与工程实践
本文深入解析C++中
public
、
private
、protected三种访问说明符在类封装和继承体系中的作用。重点阐述其在单类设计中的权限边界、在公有/保护/私有继承下的权限变换规则,以及虚函数、多重继承和友元等复杂场景下的行为约束。强调封装对数据完整性、低耦合和接口隔离的工程价值,并给出基于软件设计原则的最佳实践,如默认私有、优先组合、最小化公有接口等。
C++面向对象编程:从类与对象到
static
、const关键字深度解析
本文系统讲解C++面向对象编程核心:类作为状态与行为的封装蓝图,对象为独立实例;深入剖析
public
/
private
封装机制、this指针的自我标识作用、
static
关键字在类内(静态成员)、函数内(局部静态)和全局作用域(内部链接)的三重语义,以及const在对象、成员函数、参数与返回值中的不变性承诺。同时涵盖构造/析构、拷贝控制、静态成员初始化、线程安全及RAII资源管理等关键实践要点。
Java
static
关键字深度解析:从字节码到JVM内存模型
本文深入剖析Java中
static
关键字的本质,指出其核心是'类级别绑定'而非语法意义上的'静态'。从字节码层面揭示ACC_
STATIC
标志位的作用,说明
static
字段和方法在Metaspace中的存储机制;
分
析
static
方法无this指针、
static
块类加载时机等JVM底层行为;系统梳理其在工具类、单例、常量、静态内部类四大场景的应用逻辑与典型陷阱;重点解析内存泄漏、类加载死锁、序列化失效及Mock难题等实战风险,并结合面试高频题给出原理级回答。
C++17 inline
static
成员变量:零成本抽象与编译链接优化详解
本文深入解析C++17引入的inline
static
成员变量,涵盖其解决ODR重复定义
问题
的链接模型优化、头文件内定义即初始化的语法简化、对模板类静态成员的原生支持、常量初始化带来的静态初始化顺序优化,以及在header-only库中的最佳实践。同时
分
析动态初始化依赖、析构顺序、跨动态库
问题
等关键陷阱与应对方案。
C/C++/C#中
static
关键字的本质差异与跨语言对比解析
本文系统解析C、C++和C#中
static
关键字的核心差异:C中用于控制链接性与存储期;C++扩展支持静态成员变量/函数,强调类级共享与面向对象封装;C#则完全围绕类型系统,引入静态类、静态构造函数及线程安全初始化机制。重点对比作用域、初始化时机、线程安全性及常见陷阱,并涵盖混合编程(如C调用C++静态库)与设计模式应用。
硬件/系统
2,644
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章