前端学C++可太简单了:双冒号 :: 操作符

:: 符号,是作用域解析运算符,是C++特有的运算符

1. 访问类的静态方法/属性

cpp 复制代码
// 使用 :: 访问静态成员
Scene::create()           // 调用Scene类的静态方法create()
Color::red               // 访问Color类的静态属性red
Math::PI                 // 访问Math类的静态常量PI

什么是静态成员

静态成员是指属于类本身而非类的实例(对象)的成员(变量或方法)。它们与类直接关联,而不是与类的某个具体对象关联。

静态成员核心特性

  1. 类级别共享

    • 静态成员在内存中只有唯一一份拷贝,所有类的实例共享同一份静态成员。
    • 修改静态成员会影响所有实例。
  2. 无需实例化即可访问

    • 通过类名直接访问(推荐):ClassName.staticMember
    • 也可通过对象访问(不推荐,易混淆):obj.staticMember
  3. 生命周期

    • 静态成员在程序启动时初始化,在程序结束时销毁(与类同生命周期)。

C++用 :: 区分静态成员,JavaScript用 . 统一处理

js 复制代码
// 使用 . 访问静态成员
Scene.create()           // 调用Scene类的静态方法create()
Color.red               // 访问Color类的静态属性red  
Math.PI                 // 访问Math类的静态常量PI

2. 访问命名空间

cpp 复制代码
// C++ - 命名空间访问
std::cout               // std命名空间中的cout
threepp::Scene          // threepp命名空间中的Scene
math::TWO_PI           // math命名空间中的TWO_PI常量
js 复制代码
// JavaScript - 类似的概念是模块/对象
console.log            // console对象的log方法
Three.Scene           // Three对象/模块的Scene
Math.PI               // Math对象的PI

3. 使用规律

  1. 看到 :: 前面是大写开头 → 通常是类的静态成员
cpp 复制代码
Scene::create()          // Scene类的静态方法
Color::red              // Color类的静态属性
  1. 看到 :: 前面是小写开头 → 通常是命名空间
cpp 复制代码
std::cout               // 标准库命名空间
math::TWO_PI           // math命名空间
相关推荐
Larcher3 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher4 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
·薯条大王6 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
用户938515635076 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep7 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端7 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
eric-sjq7 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
浮生望7 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
To_OC8 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
90后的晨仔8 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js