2017 09 13

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,295评论 9 118
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,544评论 1 51
  • 终于写到第100篇。 原以为100篇都会写给女儿,数一数写了73篇,剩下的17篇日后定会加倍地补给她,因为这没有给...
    胡泉_hq阅读 291评论 0 5
  • 有时讨厌有月光的黑夜 抱怨它遮蔽满天星斗 营造不出流星的浪漫 在自己的角落里又偷偷仰望 猜想星空背后的含义 向漂浮...
    BinyJ阅读 216评论 0 0