少量知识点的补充。
1.
#include<iostream>
包含头文件,输入输出流。类似C语言的stdio.h std—standard i—input o—output
C++新风格是不带.h的,自定义的带 并且是 " .h"
endl—end line 刷新缓冲区并换行
system(“pause”);—任意键继续,阻塞
2.
-
面向过程
- 以过程为中心的编程思想,通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
- 面向过程编程思想的核心∶功能分解,自顶向下,逐层细化(程序=数据结构+算法)。
- 面向过程编程语言存在的主要缺点是不符合人的思维习惯,而是要用计算机的思维方式去处理问题,而且面向过程编程语言重用性低,维护困难。
-
面向对象—OOP
- 使用许多代码模块,每个模块都只提供特定的功能,它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。
- 在面向对象中,算法与数据结构被看做是一个整体,称作对象,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义对象和程序∶
- 对象=算法+数据结构
程序=对象+对家+…
- 对象=算法+数据结构
- 面向对象的核心就是 : 因对变化,提高复用
面向对象三大特性——封装、继承、多态
3.
作用域运算符
全局变量和局部变量,如果在一个函数体内,为同一个名字,则优先局部,若想使用全局则::变量名
namespace命名空间,一般用到较少
game1.h
#include<iostream>
using namespace std;
//LOL
void goAtk();
game2.h
#include<iostream>
using namespace std;
//King Glory
void goAtk();
game1.cpp
#include "game1.h"
void LOL::goAtk(){
cout<<"LOL攻击实现"<<endl;
}
game2.cpp
#include "game2.h"
void KingGlory::goAtk(){
cout<<"King Glory攻击实现"<<endl;
}
main.cpp
#include<iostream>
using namespace std;
#include "game1.h"
#include "game2.h"
//1.命名空间用途 解决名称冲突
void test01(){
LOL::goAtk();
KingGlory::goAtk();
}
//2.命名空间下 可存储变量、函数、结构体、类...
namespace A{
int m_A=10;
void func(){}
struct Person{};
class Animal{};
}
//3.命名空间必须声明在全局下
//4.命名空间可以嵌套命名空间
namespace B{
int m_b=10;
namespace C{
int m_b=20;
}
}
void test02(){
cout<<"B的空间下b为:"<<B::m_b<<endl;
cout<<"C的空间下b为:"<<B::C::m_b<<endl;
}
//5.命名空间是开放的,可以随时向里面增加新成员
namespace B{
int m_c=30;
}//以前的都还在
//6.命名空间可以是匿名的,相当于全局
namespace {
int m_d=10;
}
void test03(){
cout<<"m_d="<<m_d<<endl;
cout<<"m_d="<<::m_d<<endl;//两者意思一样
}
//命名空间可以取别名
namespace veryLongName{
int m_e=20;
}
void test04(){
nemaspace veryShortName = veryLongName;
cout<<veryLongName::m_e<<endl;
cout<<veryShortName::m_e<<endl;
}
int main(){
test01();
test02();
system("pause");
return 0;
}
using声明和using编译指令
namespace LOL{
int sunwukong=1;
}
void test01(){
/* int sunwukong=2;
cout<<sunwukong<<endl;//报错
*/
//1.using声明
//using声明和就近原则不要同时出现
using LOL::suwukong;
cout<<sunwukong<<endl;
}
void test02(){
int sunwukong =2;
//2.using编译指令
using namespace LOL;//和普通一样,都是
cout<<sunwukong<<endl;
//using 和就近原则同时出现,优先就近原则 所以输出2
}