【C++学习笔记】01Day

  • Post author:
  • Post category:其他



目录


1.C++的概念:


2.头文件的引入


3.C++中的输入-输出语句


4.C++中的命名空间(namespace)


5.完整代码


6.运行结果


1.C++的概念:

C++是一门面向对象的高级语言,由面向过程的C语言发展而来,C++是C的超集,他引入了面向对象式编程感念、提高了编程速率,降低了编程成本,比C语言更安全更快捷,使得程序员更专注于开发产品本身,不在关注与语法和底层性能,资本家更关心的是开发周期,因此他变得流行起来。

2.头文件的引入

头文件是已经封装好的程序包,有利于提高开发速率,没必要重造车轮,学会用他就够了,C++有很多标准头文件和第三方头文件,也可以自己封装自己的特定功能函数的头文件

//头文件有两种引入方法

//(一)新标准中
#include <iostream>//C++标准输入输出头

//(二)旧标准中
#include <iostream.h>//C++标准输入输出头

//还可以引入C语言中的头文件,也是有两种方法

//(一)新标准中
//<stdio.h>  新标准中C语言库的名称前面加"c" 去掉后面的“.h”
#include <cstdio>//C标准输入输出头

//(二)旧标准中
#include <stdio.h>//C标准输入输出头

3.C++中的输入-输出语句

C++中输出语句是cout 、输入语句是cin

#include <iostream>//C++标准输入输出头

using namespace std;//声明命名空间

//C++程序入口、一个C++项目中必须有一个main()函数,只能有一个
int main()
{
    string temp;//定义一个字符型变量temp

//    cout在控制台中打印"Hello World!",endl是换行、等同于C语言中的‘\n’
//    "<<"这个符号是指定流方向,我们这里要指向输出流cout
    cout << "Hello World!"<<endl;//输出内容到屏幕中
    
//    cin是从键盘流中获取数据
//    “>>”这个符号是指定流方向,我们这里要从cin输入流指向变量temp
    cin >> temp;

//打印temp变量中的内容到屏幕,并且换行
    cout << temp << endl;
}

以上代码输出结果为:

4.C++中的命名空间(namespace)


1.命名空间的定义

命名空间的成员可以是变量,也可以是常量、函数(在C++里叫 “方法”)

//namespace创建命名空间的关键字 + 命名空间的名字 +花括号{  里面是成员  }
namespace A {//命名空间A
    int a = 666;
}


2.命名空间的嵌套使用

//命名空间的嵌套使用
namespace C {//命名空间C
    namespace A {
        int a = 111;
    }
}

//访问里面的成员变量a
cout<<C::A::a<<endl;


3.命名空间的命名空间的可加性

在上面已经定义好的命名空间A中添加新成员变量b

//命名空间的命名空间的可加性

//在上面已经定义好的命名空间A中添加新成员变量b
namespace A {//在任何位置直接定义已经有的命名空间 ,添加新的成员
    int b = 666;
}


4.命名空间还可以放函数(方法)

//命名空间还可以放函数(方法)
namespace D {
    void fun() 
    {
        cout << "D::fun()" << endl;
    }
}
//命名空间中的函数(方法)的引用


5.命名空间中的函数还可以再外部定义

//命名空间中的函数还可以再外部定义
namespace E {
    int a = 222;
    void fun();//在这儿声明一下
}

//在这儿定义命名空间中的成员函数(也就是方法)
void E::fun()
{
    cout << "E::fun() 在命名空间外面定义的函数!" << endl;
    cout << "a = " << a << " 命名空间中的成员函数可以直接用命名空间中的变量和方法,不需要加作用域 :: 符号" << endl;
}

//命名空间中外部定义的函数的引用
E::fun();


6.无名命名空间  只能在当前文件中可用

//无名命名空间  只能在当前文件中可用
namespace {
    int a = 333;
}

//无名的命名空间的引用
cout<<a<<endl;
//或者
cout<<::a<<endl;


7.命名空间取别名

//命名空间取别名
namespace Ey = E;
//意思就是命名空间 E 取别名 Ey


8.使用命名空间

//定义命名空间F
namespace F {
    int c = 123;
}

//使用命名空间(using)
using namespace F; 
//以后引用命名空间 F 时不需要加全局符号 “::”
//可以直接用成员名来访问里面的成员
cout << "c = " << c << " 名命名空间的使用" << endl;

5.完整代码

/***************************************************
* 文件名:namespace命名空间.cpp                       *
* C++学习笔记:Day01                                 *
* 作者:Abr                                         *
* 时间:2021\12\01                                  *
***************************************************/

#include <iostream>
using namespace std;

//命名空间的定义

namespace A {//命名空间A
    int a = 666;
}

namespace B {//命名空间B
    int a = 999;
}

//命名空间的嵌套使用
namespace C {//命名空间C
    namespace A {
        int a = 111;
    }
}

//命名空间的命名空间的可加性
namespace A {//在任何位置直接定义已经有的命名空间 ,添加新的成员
    int b = 666;
}

//命名空间还可以放函数(方法)
namespace D {
    void fun() 
    {
        cout << "D::fun()" << endl;
    }
}

//命名空间中的函数还可以再外部定义
namespace E {
    int a = 222;
    void fun();//在这儿声明一下
}
//在这儿定义命名空间中的成员函数(也就是方法)
void E::fun()
{
    cout << "E::fun() 在命名空间外面定义的函数!" << endl;
    cout << "a = " << a << " 命名空间中的成员函数可以直接用命名空间中的变量和方法,不需要加作用域 :: 符号" << endl;
}

//无名命名空间  只能在当前文件中可用
namespace {
    int a = 333;
}

//命名空间取别名
namespace Ey = E;//意思就是命名空间 E 取别名 Ey


//使用命名空间
namespace F {
    int c = 123;
}

void funUsing()
{
    using namespace F;
    cout << "c = " << c << " 名命名空间的使用" << endl;
}

void fun()
{
    cout << "A::a = " << A::a << endl;
    cout << "B::a = " << B::a << endl;
    cout << "C::A::a = " << C::A::a << endl;
    cout << "A::b = " << A::b << endl;
    cout << "::a = " << ::a <<" 无名命名空间"<< endl;
    cout << "Ey::a = " << Ey::a << " 命名空间E取别名为Ey" << endl;
}


int main()
{
    fun();
    D::fun();
    E::fun();
    funUsing();
    return 0;
}

6.运行结果

学C++ 的第一天认识什么是C++?有什么性质?怎么发展而来?等等基本知识和基本语法,头文件的引用,命名空间的使用,标准输入输出语句的使用,收获的比较多,我打算十天内学完C++基本语法和编程思维,对于我用C语言8年之久程序员来说应该不是大问题,能读到文章的最后的读者谢谢你的支持!



版权声明:本文为akbarmain原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。