面向对象编程就是把问题分解成各个对象,建立对象,为了描述对象的属性
1.名称冲突解决—命名空间
解决跨文件下的命名空间 主要考虑作用域
main.c
#include <iostream>
#include <new_namespace.h>
using namespace std;
using namespace NS2;
namespace NS1 {
void func1(void)
{
cout << " NS1 func1()" << endl;
}
}
int main()
{
func1();
NS1::func1();
cout << "Hello World!" << endl;
return 0;
}
new_namespace.c
#include <iostream>
using namespace std;
namespace NS2 {
void func1(void)
{
cout << " NS2 func1()" << endl;
}
}
new_namespace.h
#ifndef new_namespace_H
#define new_namespace_H
#endif
namespace NS2 {
void func1(void);
}
匿名命名空间
namespace
{
(1)匿名命名空间中的符号纯文件内部使用,不需要被外部引用
(2)匿名命名空间效果类似于全局变量和函数加static,但是比C中的static使用范围广
(3)匿名命名空间的用法逻辑上符合整个命名空间的一贯原则
}
嵌套命名空间
不同层次间namespace的互相引用,原理相同
2.闭环内存管理—构造函数与析构函数
请看这篇文章https://cxcpp.blog.csdn.net/article/details/115523407
3.类的继承
注意:继承是模板继承,copy 一份 类成员在自己的class 中,相当于继承.h 文件,与.c 文件无关
|