• C/C++基础(一)


    解决问题:

    C和C++的区别?

    namespace命名空间?

    面向对象和面向过程的理解?

    面向对象的三大特性?

    C++ struct类型的增强?

    1. C和C++的区别?

    C++是在C语言的基础上,添加了面向对象、泛型编程等特性,C++是对C的拓展,两者在语法上和使用上都相似,所以我们统称为"C/C++"。

    2. namespace命名空间?

    在C++中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称相互冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序的设计中,以及程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入关键字namespace可以更好地控制标识符的作用域。

    namespace是指标识符的各种可见范围。命名空间由关键字namespace来定义,命名空间把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标志符作为此组群的名字。

    namespace A{
        int a = 10;
    }
    namespace B{
        int a = 20;
    }
    void test(){
        cout << "A::a : " << A::a << endl;
        cout << "B::a : " << B::a << endl;
    }

    注意:命名空间只能在全局范围内定义。

    3. 面向过程和面向对象

    面向过程编程思想的核心:功能分解,自顶而下,逐层细化。(程序=数据结构+算法)

    面向对象中,算法和数据被看做是一个整体,成为对象。(程序=对象+对象+对象+...)

    面向对象编程思想的核心:应对变化,提高复用。

    4. 面向对象三大特性

    4.1 封装

    把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。

    类将成员变量和成员函数封装在类的内部,根据需要设置访问权限,通过成员函数管理内部状态。

    4.2 继承

    4.3 多态

    多态性可以简单地概括为“一个接口,多种方法”,即多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。

    5. C++ struct类加强

    C定义结构体变量需要加上struct关键字,C++不需要。C中结构体只能定义成员变量,不能定义成员函数,C++既可以定义成员变量,也可以定义成员函数。

  • 相关阅读:
    LeetCode: LRU Cache
    LeetCode: Reorder List
    LeetCode: Linked List Cycle I && II
    LeetCode: Word Break I && II
    LeetCode: Single Number I && II
    太坑了,mybatis注解一对多,id没了
    ajax请求参数的格式
    查询结果拼接
    id拼接保存到单个字段后作为表连接的查询条件
    seam的定时轮巡
  • 原文地址:https://www.cnblogs.com/mungerz/p/10508447.html
Copyright © 2020-2023  润新知