1,类类型变量的初始化
如果定义某个类的变量时没有提供初始化式,这个类也可以定义初始化时的操作。
它是通过定义一个特殊的构造函数即默认构造函数来实现的。
2,可以通过使用 extern 关键字声明变量名而不定义它。extern 声明不是定义,也不分配存储空间,程序中变量可以声明多次,但只能定义一次。只有当声明也是定义时,声明才可以有初始化式,因为只有定义才分配存储空间。初始化式必须要有存储空间来进行初始化。如果声明有初始化式,那么它可被当作是定义,即使声明标记为 extern。
在 C++ 语言中,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量。
3,C++ 语言中,大多数作用域是用花括号来界定的。一般来说,名字从其声明点开始直到其声明所在的作用域结束处都是可见的。
4, const 限定符
magic number;非 const 变量默认为 extern。要使 const 变量能够在其他的
文件中访问,必须地指定它为 extern。
5,引用就是对象的另一个名字.在实际程序中,引用主要用作函数的形式参数。引用是一种复合类型,通过在变量名前添加“&”符号来定义。因为引用只是它绑定的对象的另一名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上。
当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象。const 引用是指向 const 对象的引用。
const 引用则可以绑定到不同但相关的类型的对象或绑定到右值。
6,typedef 名字
typedef 可以用来定义类型的同义词。typedef 定义以关键字 typedef 开始,后面是数据类型和标识符。
typedef 通常被用于以下三种目的:
为了隐藏特定类型的实现,强调使用类型的目的。
简化复杂的类型定义,使其更易理解。
允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
7,枚举
枚举的定义包括关键字 enum,其后是一个可选的枚举类型名,和一个用花
括号括起来、用逗号分开的枚举成员列表。
// input is 0, output is 1, and append is 2
enum open_modes {input, output, append};
枚举成员是常量。
常量表达式是编译器在编译时就能够计算出结果的整型表达式。
枚举成员值可以是不唯一的。
不能改变枚举成员的值。枚举成员本身就是一个常量表达式,所以也可用于需要常量表达式的任何地方。
8,类类型
定义变量和定义数据成员存在非常重要的区别:一般不能把类成员的初始化
作为其定义的一部分。
类中 public 部分定义的成员在程序的任何部分都可以访问。一般把操作放
在 public 部分,这样程序的任何代码都可以执行这些操作。
不是类的组成部分的代码不能访问 private 成员。
C++ 支持另一个关键字 struct,它也可以定义类类型。struct 关键字是从
C 语言中继承过来的。
如果使用 class 关键字来定义类,那么定义在第一个访问标号前的任何成
员都隐式指定为 private;如果使用 struct 关键字,那么这些成员都是
public。使用 class 还是 struct 关键字来定义类,仅仅影响默认的初始访问
级别。
struct Sales_item {
// no need for public label, members are public by default
// operations on Sales_item objects
private:
std::string isbn;
unsigned units_sold;
double revenue;
};
一般类定义都会放入头文件。
头文件为相关声明提供了一个集中存放的位置。
头文件一般包含类的定义、extern 变量的声明和函数的声明。头文件的正确使用能够带来两个好处:保证所有文件使用给定实体的同一声明;当声明需要修改时,只有头文件需要更新。
设计头文件还需要注意以下几点:头文件中的声明在逻辑上应该是统一的。
编译头文件需要一定的时间。如果头文件太大,程序员可能不愿意承受包含该头
文件所带来的编译时代价。为了减少处理头文件的编译时间,有些 C++的实现支持预编译头文件。
编译和链接多个源文件
分享到:
相关推荐
【C++学习笔记【原创】】是一份作者个人长期积累的C++学习心得与经验总结,旨在为初学者提供一个参考的学习路径。这份笔记涵盖了C++的基础知识、编程技巧以及函数语法等多个方面,帮助读者逐步掌握这门强大的编程...
《C++ Templates 中文版》笔记是对C++模板这一核心编程技术的深入解析,由陈伟柱翻译,出版于人民邮电出版...这份笔记结合书本和网络资源,提供了一个全面的学习平台,对于提升C++开发者在泛型编程方面的技能大有裨益。
1. **基础语法**:C++的基础包括变量(如int, float, double, char等类型)、数据类型、常量、运算符(算术、比较、逻辑、赋值、位操作等)以及流程控制语句(如if-else, switch-case, for, while, do-while)。...
### iOS开发教程(大神原创笔记)核心知识点详解 #### 一、Unix相关知识点 **1. Unix指令:** - **pwd**:用于显示当前所在目录的位置。 - **ls**:列出当前目录下的所有文件及文件夹。 - **ls –l**:以详细...
最近开始学习非关系型数据库MongoDB,却在博客园上找不到比较系统的教程,很多资料都要去查阅英文网站,效率比较低下。本人不才,借着自学的机会把心得体会都记录下来,方便感兴趣的童鞋分享讨论。部分资源出自...
总的来说,这个压缩包提供了一个完整的、原创的记事本项目的实例,对于想要学习编程尤其是文本编辑器开发的初学者来说,是一个宝贵的资源。通过这个项目,你可以了解到软件的基本架构、文件处理、用户界面设计等多个...
综上所述,这个压缩包"PAT甲级所有代码.7z"是一个宝贵的资源,对于准备参加PAT甲级竞赛或提升C++编程和算法能力的学习者来说,可以从中学习到实际的编程技巧,了解如何将理论知识应用于实践,同时也可以通过分析和...
陌溪的学习笔记 关于我 陌溪 是一个从三本院校一路摸滚翻爬上来的程序员。目前就职于 字节跳动的Data广告部门,是字节跳动全线产品的商业变现研发团队。这两天创建了一个 微信公众号【陌溪教你学编程】,未来将会在...
描述:"大神原创的iOS开发教程,内容全面,覆盖OC及iOS开发全部技术细节内容,值得认真学习" 标签:"iOS 移动开发 Objective-C iOS开发 教程" 部分内容: 1. iOS开发基础介绍:开发者拥有丰富的Android、iOS、PHP和...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 向issue 提出。此仓库引用于issue! 只面向初学者用于学习参考~ :bookmark_tabs: 目录 :plus: C/C++ ...
虽然没有Unity那样的GPU渲染优化(Unity3D的美化与渲染真的很好),但是这样低的CPU占用率依然很诱人(使用Unity3D时CPU占用率在1.3%~1.6%左右,GPU占用率高,占用线程多),对于轻量级(即便是很简单的一个三维场景...
7. **项目或研究**:可能包含学生或教师进行的原创性研究,比如基于C++的软件开发项目。 8. **源代码**:如果涉及软件开发,这里可能会有C++项目的源代码,展示实际编程实践。 9. **论坛或讨论区**:可能有一个交互...
- **营造良好氛围**:构建一个有利于学习和研究的良好环境,提高教学质量。 #### 二、大赛流程 1. **资格赛阶段** - **时间**:待定。 - **形式**:笔试,包含客观题。 - **参赛资格**:面向全体在校生,可以...
程序设计大赛是一种旨在提升学生计算机编程技能、激发创新思维和团队协作精神的竞赛活动。此策划方案主要分为三个阶段:资格赛、代码书写阶段和代码评分阶段,旨在全面评估学生的编程能力和创新能力。 1. **资格赛...
标题 "自己开发的俄罗斯方块" 暗示了这是一个由个人或小团队独立完成的电子游戏项目,其中主要的编程语言可能是C++、Python、Java等,因为这些语言广泛用于游戏开发。俄罗斯方块是一款经典的休闲游戏,其基本原理是...
"蓝桥杯"是一项全国性的IT技能竞赛,旨在提升大学生和青少年的信息技术能力,特别是编程和算法设计。这个压缩包包含的资源显然与蓝桥杯比赛相关,提供了试题和参考答案,是参赛者复习和准备的重要资料。 首先,我们...
中国科学技术大学课程资源本仓库收录中国科学技术大学众多课程资源的笔记,总结,经验等学生原创内容目录索引版权说明本仓库分享资料遵守其创作者之规定,由同学自愿投稿,仅接收学生原创的或获得授权的资源。...