Bootstrap

C++入门补充知识点

少量知识点的补充。

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
}

;