zoukankan      html  css  js  c++  java
  • 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++既可以定义成员变量,也可以定义成员函数。

  • 相关阅读:
    WebApi之DOM的基本介绍
    Javascript常见数据类型API
    JavaScript作用域与对象
    Javascript数组与函数初识
    久等了,你要的 Python 书籍推荐,来了
    六种酷炫Python运行进度条
    python获取系统内存占用信息的实例方法
    在图像中隐藏数据:用 Python 来实现图像隐写术
    付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具
    Python数据分析实战:使用pyecharts进行数据可视化
  • 原文地址:https://www.cnblogs.com/mungerz/p/10508447.html
Copyright © 2011-2022 走看看