《侯老师C++面向对象开发》从入门到“入土”(一)

这篇博客介绍了C++语言的基础知识,包括变量(如bool、char、int等类型)、类型系统、作用域规则、循环(while、for等)和流程控制(if、switch)。此外,还提到了程序的编译和运行过程,以及面向对象编程的基础概念。文章最后讨论了std::cout和cout的区别,并推荐了几本C++学习书籍。
摘要由CSDN通过智能技术生成

目录

一、需要的语言基础

1.1变量(Variables)

1.2类型(types)

1.3作用域(scope)

1.4循环(loops)

1.5流程控制/判断(judge)

1.6、了解程序需要编译、连接才可运行

1.7、使用工具进行编译(避免shell型)

 二、程序的基础分类

Object Basde(基于对象)

Object Orented(面向对象)

三、Download课件

四、C++历史与演化

4.1 C++历史演化

4.2 C++版本更替

五、相关书籍

六、std::cout与cout的基本区别


一、需要的语言基础

1.1变量(Variables)

        变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。

        变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。

1.2类型(types)

        bool:存储值为true/false

int main() {
    bool a = true;     //这里可以自己尝试改成数字,会提示Error,自动变更为true
    std::cout << a << std::endl;
    return 0;
}

        char:通常为字符(8位),整数类型

//这里比较明确的将声明与赋值拆开来,运行后结果为s
//这里要理解的是char存储标准ASCII标准字符,115为s
int main() {
    char a;
    a = 115;
    std::cout << a << std::endl;
    return 0;
}

        int:定义一个整型变量

//这里注意的是对int而言,其大小为32位有符号整型
int main() {
    int a = 1234567890;
    std::cout << a << std::endl;
    return 0;
}

        这里只写了三个最基础的,建议自己进行实际操作进行理解,除此以外还有:

float(单精度浮点值。1位符号,8位指数,23位小数)

        sign(1bit)---exponent(8bits)---fraction(23bits)

double(双精度浮点值。双精度是1位符号,11位指数,52位小数。)

        sign(1bit)---exponent(11bits)---fraction(52bits)

sturce、void、wchar_t等等。C++ 也允许定义各种其他类型的变量,比如枚举、指针、数组、引用、数据结构、类等等

1.3作用域(scope)

        字面理解作用域是一个区域,也就是代码区域,一般来说有变量根据作用域不同可以分为三种,也可以说分三个地方可以定义变量。

        · 在函数或某个代码块内部声明的变量,称为局部变量。

        · 在函数参数定义中声明的变量,称为形式参数(形参)。

        · 在所有函数外部(include之后定义)声明的变量,称为全局变量。

Tips:注意在函数内部即main中的局部变量与全局变量名相同时,输出为main中局部变量值,全局变量值会被覆盖。

#include<iostream>
using namespace std;

int g = 10;    //全局变量声明

int main(){
    int b = 10;    //局部变量声明
    int g = 20;    //可以自己注释看一下Tips效果
    cout << a << endl;
    cout << a << endl;
    return 0;
}

        全局变量时,系统会自动初始化为下列值(可以试试Clion/Vscode的提示就明白了):

int0
char'\0'

float

0
double0
pointerNULL

1.4循环(loops)

        while:只要给定的条件为真,while 循环语句会重复statement语句。可以理解为当符合condition条件时,就一直循环执行statement语句。condition可以为任意表达式,任意非0为真,statement()可以是单独的执行语句或者几个执行模块。

while(condition)
{
   statement();
}

        除此之外还有for循环、do---while循环、嵌套循环(字面理解套娃结构//狗头//)

        对循环的打断或者说控制语句包括熟知的break、continue、goto。

1.5流程控制/判断(judge)

        这里说流程控制,我更习惯称为判断(judge),包含if、if---else、嵌套if、switch、嵌套switch。

// 这里以if---else为例
#include <iostream>
using namespace std;

int main() {
    int a ;
    cout << "请输入a的值,a=" << endl;
    cin >> a;
    int b;
    if (a > 20) {
        cout << a << endl; 
    }
    else {
        b = a - 5;
        cout << b << endl;
    }
    return 0;
}

1.6、了解程序需要编译、连接才可运行

1.7、使用工具进行编译(避免shell型)

        常用的Vim(Linux命令行改一个小东西还是常用的)、Vscode、Pycharm、CLion等等。

 二、程序的基础分类

Object Basde(基于对象)

--class without pointer members(无指针)

                ----Complex

--class with pointer members(有指针)

                ----String

Object Orented(面向对象)

--继承(inheritance)

--复合(composition)

--委托(delegation)

面向对象程序设计(Object-Oriented Programming,简称OOP)

三、Download课件

        (可在Github中搜索自行下载,搜索关键字自行百度)

complex.h

complex-test.cpp

string.h

string-test.cpp

oop-demo.h

oop-test.cpp

四、C++历史与演化

4.1 C++历史演化

        · B语言(1969)

        · C语言(1972)

        · C++语言(1983)(new C ---> C with Class ---> C++)

        · Java语言

        · C#语言

        当然除C++外还有我们熟知的Python、JavaScript。

4.2 C++版本更替

        C++ 98 (1.0)

        C++ 03 (TR1,Technical Report 1)

        C++ 11 (2.0)

        C++ 14

        C++ 17

        C++ 20

        这里我们要说的是不仅仅关注C++这门语言,更要关心C++的STL(标准库)。

        STL英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。

五、相关书籍

        C++ Primer

        C++ Primer Plus(正在看)

        Effiective C++

        STL源码剖析

六、std::cout与cout的基本区别

        以1.5流程控制/判断(judge)为例

        std是C++的标准库(STL) 命名空间, C++标准里的所有函数,类等都定义在std里。

示例一、

        如果在程序开头未有"using namespace std;"那么在下列程序中就是这么写,表明在程序每次cout时都要对其进行说明(::作用域运算符)

#include <iostream>

int main() {
    int a ;
    std::cout << "请输入a的值,a=" << std::endl;
    std::cin >> a;
    int b;
    if (a > 20) {
        std::cout << a <<std::endl;
    }
    else {
        b = a - 5;
        std::cout<< b <<std::endl;
    }
    return 0;
}

 示例二、

        在程序开头加入"using namespace std;"后,等同于在下方程序中默认使用std的标准库命名空间,实际上与示例一没有区别。

#include <iostream>
using namespace std;

int main() {
    int a ;
    cout << "请输入a的值,a=" << endl;
    cin >> a;
    int b;
    if (a > 20) {
        cout << a << endl;
    }
    else {
        b = a - 5;
        cout << b << endl;
    }
    return 0;
}

下一章:(二)C++头文件与类的声明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值