当前位置: 首页 > news >正文

C++符合快速入门(有java和js基础的)

​1. 基础符号对比表​

​符号/语法​​C++ (Qt)​​Java​​JavaScript​​解释​
​输出调试信息​qDebug() << "Hi" << 123;System.out.println("Hi" + 123);console.log("Hi", 123);Qt 用 << 流式输出
​字符串格式化​QString("Name: %1").arg(name);String.format("Name: %s", name);`Name: ${name}`%1 是占位符,arg() 替换
​信号(事件)​emit signalName(data);listener.onEvent(data);dispatchEvent(new Event(data));Qt 的信号槽机制
​Lambda 函数​[=]() { qDebug() << x; }() -> System.out.println(x);() => console.log(x);[=] 表示捕获外部变量
​空指针​nullptrnullnullundefinedC++11 引入的更安全的空指针
​作用域解析​::(如 ClassName::method().(如 ClassName.method().(如 ClassName.method()C++ 用 :: 访问类/命名空间成员

​2. 特殊符号详解​
​(1) ->(成员访问指针)​

  • ​C++​​:用于访问 ​​指针对象的成员​​。
QPushButton *button = new QPushButton;  
button->setText("Click"); // 相当于 Java/JS 的 button.setText()  
  • ​对比 Java/JS​​:
// Java  
Button button = new Button();  
button.setText("Click");  
// JavaScript  
const button = new Button();  
button.setText("Click");  

​(2) &(引用/取地址)​

  • ​C++​​:
    • ​引用​​(类似 Java 的“别名”):
    int a = 10;  
    int &ref = a; // ref 是 a 的引用  
    ref = 20;     // 现在 a = 20  
    • ​取地址​​(获取变量内存地址):
    int* ptr = &a; // ptr 存储 a 的内存地址  
  • ​Java/JS​​:没有直接对应的概念(Java 的引用是隐式的,JS 变量本身就是引用)。

​(3) *(指针/解引用)​

  • ​C++​​:
    • ​声明指针​​:
    int *p; // p 是一个指向 int 的指针  
    • ​解引用​​(获取指针指向的值):
    int a = 10;  
    int *p = &a;  
    int b = *p; // b = 10  
  • ​Java/JS​​:没有指针,直接用对象引用。

​(4) ::(作用域解析)​

  • ​C++​​:访问 ​​类静态成员​​ 或 ​​命名空间​​。
class MyClass {  
public:  static void foo();  
};  
MyClass::foo(); // 调用静态方法  
  • ​Java/JS​​:直接用 .
// Java  
MyClass.foo();  
// JavaScript  
MyClass.foo();  

​(5) [](数组/Lambda 捕获)​

  • ​C++​​:
    • ​数组​​:
    int arr[3] = {1, 2, 3};  
    int x = arr[0]; // x = 1  
    • ​Lambda 捕获​​:
    int a = 10;  
    auto func = [=]() { qDebug() << a; }; // [=] 表示按值捕获  
  • ​Java/JS​​:
// Java  
int[] arr = {1, 2, 3};  
int x = arr[0];  
// JavaScript  
const arr = [1, 2, 3];  
const x = arr[0];  

​3. 常见 Qt 特有符号​

​符号/语法​​解释​​Java/JS 类似概念​
SIGNAL() / SLOT()Qt4 的信号槽连接语法(旧版)addEventListener() (JS)
Q_OBJECT宏,表示该类支持信号槽无直接对应
Q_INVOKABLE标记方法可被 QML 调用@Exposed 注解(JavaFX)
Q_PROPERTY定义 QML 可访问的属性@FXML 属性绑定(JavaFX)

​4. 快速记忆技巧​

  1. <<​ → 想象成 console.log(), 或 Java 的 + 拼接。
  2. ->​ → 和 Java/JS 的 . 一样,但用于指针。
  3. &*​ → 记住 & 是“取地址”,* 是“解引用”。
  4. ::​ → 类似 Java 的 .,但用于类/命名空间。
  5. emit​ → 就当它是 JS 的 dispatchEvent() 或 Java 的 listener.call()
http://www.lryc.cn/news/598551.html

相关文章:

  • 7.24路由协议总结
  • 如何将拥有的域名自定义链接到我的世界服务器(Minecraft服务器)
  • C++ 基础入门
  • 【shell脚本编程】day1 备份指定文件类型
  • 深入理解大语言模型生成参数:temperature、top\_k、top\_p 等全解析
  • 社区资源媒体管理系统设计与实现
  • 复盘—MySQL触发器实现监听数据表值的变化,对其他数据表做更新
  • Kubernetes Kubelet 资源配置优化指南:从命令行参数到配置文件的最佳实践
  • Hadoop磁盘I/O瓶颈的监控与优化:从iostat指标到JBOD vs RAID的深度解析
  • 40、鸿蒙Harmony Next开发:UI场景化-组件截图(ComponentSnapshot)
  • 跨境支付入门~国际支付结算(结算篇)
  • 龙虎榜——20250724
  • Vue工程化 ElementPlus
  • 数据结构实验-查找与排序算法
  • NPM/Yarn完全指南:前端开发的“基石“与“加速器“
  • 基于单片机智能交通灯设计
  • 人工智能与云计算双轮驱动:元宇宙如何重构全球产业生态
  • Python之底层级的网络接口——Socket(套接字)协议族及函数介绍
  • 【王树森推荐系统】推荐系统涨指标的方法05:特殊用户人群
  • Linux(centos7)安装 docker + ollama+ deepseek-r1:7b + Open WebUI(内含一键安装脚本)
  • 250714脑电分析课题进展——基础知识扩展与论文阅读
  • Android跨进程通信完全教程:从基础到实战
  • 前端笔记:同源策略、跨域问题
  • OpenCV —— 绘制图形
  • git更新内核补丁完整指南
  • 基于Zig语言,opencv相关的c++程序静态交叉编译
  • 常见的Bug管理工具有哪些?(如JIRA、Bugzilla、禅道等)
  • DAY 24 元组和OS模块
  • 【Python机器学习】4.2. 数据分离与混淆矩阵
  • 【XGBoost】两个单任务的模型 MAP - Charting Student Math Misunderstandings