zoukankan      html  css  js  c++  java
  • 函数,封装

    1. 类

    成员变量,成员函数,私有变量,私有函数

    1. 设计圆类

    测试圆类:

    2. 设计学生类

    测试学生类:

     2. 内联函数

    1. 宏的缺陷

    宏最好添加括号,如果添加了括号如例二还是会出现问题,宏函数没有作用域。

    2. 内联函数

    (1). 定义,没有inline关键字的函数不是内联函数

    inline type function(type parameter){} 

    (2). 可以解决宏定义的缺陷

    (3). 内联函数和普通函数的区别

    内联函数的确占用空间,但是内联函数比较普通函数的优势在于省去了函数调用时候的压栈,跳转,返回的开销,可以理解为内联函数是用空间换取时间

    (4). 内联函数和编译器

    c++的编译器对内联编译有一些显示,有些情况不考虑对函数进行内联编译

    a. 不能存在任何形式的循环语句

    b. 不能存在过多的条件判断语句

    c. 函数体不能过于庞大

    d. 不能对函数进行取址操作

    内联仅仅是给编译器的一个建议,编译器不一定会接受这个建议,如果没有将函数声明为内联函数,那么编译器也可能对这个函数做内联编译,一个好的编译器会内联小的,简单的函数

    4. 函数的参数

    1. 函数的默认参数

    函数的声明和实现只能有一个有默认参数。

    2. 函数的占位参数

    函数如果有占位参数,在调用这个函数的时候必须要提供这个参数

     c语言中没有默认参数和占位参数

     5. 函数的重载

    1. 函数重载条件

    在同一个作用域,函数的名称相同,函数的返回值必须相同

    函数的参数不同,或者参数的类型不同,或者参数的顺序不同

    2. 函数的重载遇到默认参数时,需要注意避免出现二义性

    3. 引用的重载

     4. 函数重载的原理

    不同编译器原理不同,在Linux环境下:

    5. extern “C”浅析

    c++语言中调用c语言方法中。

    方法一:不需要包含头文件,extern "C" void show();

    方法二:如果有多个代码时

    c++代码中包含头文件

    c语言的头文件中使用如下方式:

     6. C++的封装

    1. c语言和c++封装的区别

    c语言的封装,struct中不能有成员函数,将属性和行为分开处理了,类型检测不够

    c++的封装:严格的类型检测,并且会将属性和行为放到一起

    c++有控制权限:protected(保护权限) public (公共权限)private(私有权限),不加声明,默认是public

    struct 和class除了默认权限不同,剩下的完全相同

    protected:类的内部以及类的子类可以访问

    class的默认权限是private,struct的默认权限是public

     2. 建议将成员属性设置为私有,使用接口对成员变量访问

     7. 面向对象设计案例

    判断点和圆相对位置关系的案例

    编写点类和圆类代码:

    测试:

  • 相关阅读:
    《黑马程序员》 内存管理的认识(Objective
    《黑马程序员》 description方法(Objective
    《黑马程序员》 类的加载和初始化(Objective
    《黑马程序员》 category分类的使用(Objective
    《黑马程序员》 OC构造方法(Objective
    《黑马程序员》 OC编译器特性(Objective
    《黑马程序员》 OC的三大特性(Objective
    《黑马程序员》 OC的认识和第一个OC(Objective
    《黑马程序员》 extern与static的使用注意(C语言)
    《黑马程序员》 typedef的使用方法(C语言)
  • 原文地址:https://www.cnblogs.com/feng-ying/p/10031421.html
Copyright © 2011-2022 走看看