美文网首页
2017 09 13

2017 09 13

作者: 曹耀文08 | 来源:发表于2017-09-13 21:58 被阅读4次

    对程序的结构的相关学习,重要知识点如下:

    1.作用域:是标识符(变量、常量、类、对象、函数等)的有效范围;

    2.可见性:标识符是否可以引用的问题;

    3.块作用域

    块是一对花括号括起来的一段程序单元。

    在块中声明的标识符,其作用域从声明处开始,直到块结束的右花括号。

    **作用域可见性的一般规则:

    (1)标识符应声明在先,引用在后。

    (2)在同一作用域中,不能声明同名的标识符。

    (3)如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。

    (4)对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中

    4.友元:同名的标识符,则外层作用域的标识符在内层不可见。

    是C++提供的一种破坏数据封装和数据隐藏的机制。

    (1)通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的private 和 protected信息。

    (2)可以使用友元函数和友元类。

    (3)为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。

    friend class X;

    5.友元函数:

    友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问 private 和 protected成员

    (1)作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。

    (2)访问对象中的成员必须通过对象名。

    6.友元类:

    若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。

    (1)声明语法:将友元类名在另一个类中使用friend修饰说明。

    (2)若B类声明为A类的友元,

    意味着B类的所有函数包括构造函数和析构函数成为A类的友元。

    **注:

    一:友元关系是不能传递的

    B类是A类的友元

    C类是B类的友元

    但:c类与A类没有友元关系

    二:友元关系是单向的

    B类是A类的友元

    B类的成员可以访问A类的所有成员;

    但A类不能。

    7.多文件结构和编译预处理命令

    *编译预处理命令

    (1)#include 包含指令    将一个源文件嵌入到当前源文件中该点处。

    (2)#include<文件名>    按标准方式搜索,文件位于C++系统目录的include子目录下

    (3)#include"文件名"首先在当前目录中搜索,若没有,再按标准方式搜索。

    (4)#define 宏定义指令

    定义符号常量

    #define PI 3.14

    (5)#undef~~删除由#define定义的宏,使之不再起作用。

    7-2条件编译指令

    #ifndef  标识符  程序段1 如果没有定义标识符执行程序段1

    #else      程序段2

    #endif

    8.多文件结构****(学习重点)

    一个源程序一般至少分为三个源文件:

    类声明文件(.h文件)

    类实现文件(.cpp文件)

    类的使用文件(main( ) 所在的.cpp文件)

    利用项目Project来组合各个文件(.vcxproj)。

    解决方案(.sln):它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中,他是一个或多个. vcxproj (项目)的集合。

    对1~6进行基础知识掌握;

    7,8作为重点运用练习(在“图形类”相关练习内应用),力求掌握并灵活应用于以后的程序编译中。

    相关文章

      网友评论

          本文标题:2017 09 13

          本文链接:https://www.haomeiwen.com/subject/ofolsxtx.html