对程序的结构的相关学习,重要知识点如下:
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作为重点运用练习(在“图形类”相关练习内应用),力求掌握并灵活应用于以后的程序编译中。
网友评论