C++语言基础 例程 命名空间的使用
2015-05-28 20:54
651 查看
贺老师的教学链接 本课讲解
重名问题的解决
重名问题的解决
//出错的程序 #include <iostream> #include <math.h> using namespace std; class point { public: double x; double y; }; double distance(point p1,point p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } int main() { point p1= {3,5},p2= {6,9}; cout<<distance(p1,p2); }
//改法1:std中的名称加限制 #include <iostream> #include <math.h> class point { public: double x; double y; }; double distance(point p1,point p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } int main() { point p1= {3,5},p2= {6,9}; std::cout<<distance(p1,p2); //出除了using namespace std,而在std中的cout前加上std:: }
//改法2:本地名称加限定 #include <iostream> #include <math.h> using namespace std; class point { public: double x; double y; }; double distance(point p1,point p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } int main() { point p1= {3,5},p2= {6,9}; cout<<::distance(p1,p2); //保留using namespace std,而在distance前加上::,表示distance是“本地的” return 0; }
//改法3:本地改名避冲突 #include <iostream> #include <math.h> using namespace std; class point { public: double x; double y; }; double dist(point p1,point p2) //本地函数改名 { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } int main() { point p1= {3,5},p2= {6,9}; cout<<dist(p1,p2); return 0; }
//改法4:明确定义本地的命名空间 #include <iostream> #include <math.h> using std::cout; namespace mypoint { class point { public: double x; double y; }; double distance(point p1,point p2) { double d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } }; int main() { mypoint::point p1= {3,5},p2= {6,9}; cout<<distance(p1,p2); //不使用std命名空间 return 0; }
相关文章推荐
- MFCC特征提取(C语言版本)
- 黑马程序员 C语言:标识符概念及其命名原则
- C++语言基础 例程 命名空间要解决的问题
- C++ 多线程编程总结
- C++语言基础 例程 异常处理的方法
- C++语言基础 例程 异常处理的任务
- C++语言基础 例程 应用系统开发:银行储蓄系统
- C++线程基础
- C语言做的键盘操作的五子棋
- C++子类访问父类protected成员
- C语言的自动类型转换
- C/C++编译器错误代码大全
- C++的const_cast的问题
- C++的const_cast的问题
- MFCC特征提取(C语言版本)
- 【学习笔记】【C语言】数据
- 九度OJ 题目1000:计算a+b
- 对C++运算符重载的作业分析
- 遇见C++ Lambda
- [C/C++]pragma comment的使用