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

c++ 命名空间使用规则

之前一直没搞懂为什么c++ 用了using namespace std;就能直接调用内部的类,直接调用内部函数

今天试着实现了一下:

#include <iostream>// 命名空间
namespace mp{    class point{public: // 构造函数point(int x = 0, int y = 0) : x(x), y(y) {}// 赋值函数void set(int x, int y){this->x = x;this->y = y;}void print(){printf("point: (%d, %d)\n", x, y);}// 析构函数~point() {printf("周期结束自动调用析构函数释放资源\n");}private:    // 私有int x;int y;};void mmp(){printf("直接调用函数\n");}}using namespace std;
using namespace mp;int main(){mmp();point p(3, 2);p.print();p.set(5, 1);p.print();
}

在命名空间namespace内部声明函数和类后就直接调用using namespace就可以直接调用内部的类和函数了,就不用加::

#include <iostream>// 命名空间
class mp{    
public: // 将类成员设置为public,以便在类外部访问class point{public: // 构造函数point(int x = 0, int y = 0) : x(x), y(y) {}// 赋值函数void set(int x, int y){this->x = x;this->y = y;}void print(){std::cout << "point: (" << x << ", " << y << ")" << std::endl;}// 析构函数~point() {std::cout << "周期结束自动调用析构函数释放资源" << std::endl;}private:    // 私有int x;int y;};void mmp(){std::cout << "直接调用函数" << std::endl;}
};using namespace std;
mp::point p; // 使用作用域解析运算符创建point对象int main(){p.print();p.set(5, 1);p.print();return 0;
}

这种就需要写::很不方便

http://www.lryc.cn/news/510943.html

相关文章:

  • 从 ELK Stack 到简单 — Elastic Cloud Serverless 上的 Elastic 可观察性
  • Pandas系列|第二期:Pandas中的数据结构
  • Hadoop中MapReduce过程中Shuffle过程实现自定义排序
  • 数位dp-acwing
  • 智慧园区小程序开发制作功能介绍
  • STM32高级 物联网之Wi-Fi通讯
  • LLM预训练recipe — 摘要版
  • 波动理论、传输线和S参数网络
  • nginx-1.23.2版本RPM包发布
  • 如何用WPS AI提高工作效率
  • LabVIEW应用在工业车间
  • Elasticsearch:normalizer
  • 动态规划子序列问题系列一>等差序列划分II
  • 48页PPT|2024智慧仓储解决方案解读
  • 低代码开源项目Joget的研究——Joget8社区版安装部署
  • upload-labs关卡记录15
  • 1.使用 Couchbase 数仓和 Temporal(一个分布式任务调度和编排框架)实现每 5 分钟的增量任务
  • matrix-breakout-2-morpheus
  • 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
  • 【RabbitMQ的死信队列】
  • 掌握软件工程基础:知识点全面解析【chap02】
  • 公路边坡安全监测中智能化+定制化+全面守护的应用方案
  • 闲谭Scala(3)--使用IDEA开发Scala
  • Go语言反射从入门到进阶
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ARM64 Windows 10 IoT工控主板运行x86程序效率测试
  • 开放世界目标检测 Grounding DINO
  • easegen将教材批量生成可控ppt课件方案设计
  • 2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)
  • 【虚拟机网络拓扑记录】