C++
文章平均质量分 62
Zedthm
且行且歌
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 面向对象程序的基本特点(第四章)
l程序中的对象是现实中对象的模拟,具有属性和功能/行为;l抽象出同一类对象的共同属性和行为,形成类,对象是类的实例;l类将数据和处理数据的函数封装在一起,隐藏内部细节,提供对外访问接口;l定义对象时,可以通过构造函数进行初始化;l删除对象时,可以通过析构函数释放资源;l一个类的对象可以由其他类的对象组合而成,即类的成员可以是其他类的对象;l在这一章,我们还将学习结构体、联合体和枚举类。面向对象程序设计的基本特点抽象l对同一类对象的共同属性和...原创 2022-01-10 06:00:00 · 165 阅读 · 0 评论 -
C++ 指针与数组(第六章)
目录用指针访问数组元素用指针访问数组元素数组是一组连续存储的同类型数据,可以通过指针的算术运算,使指针依次指向数组的各个元素,进而可以遍历数组。定义指向数组元素的指针 定义与赋值 例:int a[10], *pa; pa=&a[0]; 或 pa=a; 等效的形式 经过上述定义及赋值后 *pa就是a[0],*(pa+1)就是a[1],...,*(pa+i)就是a[i].a[i],*(pa+i),*(a+i),pa[i...原创 2022-01-16 06:00:00 · 274 阅读 · 0 评论 -
C++ 指针的定义和运算(第六章)
指针的概念、定义和指针运算内存空间的访问方式 通过变量名访问 通过地址访问 指针的概念 指针:内存地址,用于间接访问内存单元 指针变量:用于存放地址的变量 指针变量的定义 例: static int i;static int* ptr = &i; 例: *ptr = 3;与地址相关的运算——“*”和“&” 指针运算符 地址运算符:& 指针的初始化和赋值指针变量的初始化 语原创 2022-01-14 06:00:00 · 298 阅读 · 0 评论 -
C++ 数组的定义与使用(第六章)
目录数组的定义与使用数组的定义数组的使用例6-1数组的存储与初始化一维数组的存储一维数组的初始化二维数组的存储二维数组的初始化例:求Fibonacci数列的前20项一维数组应用举例数组的定义与使用 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组的定义 例如: int a[10]; 表示a为整型数组,有10个元素:a[0]...a[9] 例如: int a[5][.原创 2022-01-15 06:00:00 · 2339 阅读 · 0 评论 -
C++ 多文件结构和编译预处理命令(第五章)
目录多文件结构和编译预处理命令C++程序的一般组织结构例 5-10 多文件的工程外部变量外部函数将变量和函数限制在编译单元内标准C++库编译预处理l#include 包含指令l#define 宏定义指令l#undef条件编译指令——#if 和 #endif条件编译指令——#else条件编译指令——#elif条件编译指令多文件结构和编译预处理命令C++程序的一般组织结构l一个工程可以划分为多个源文件:n类声明文件(...原创 2022-01-14 06:00:00 · 538 阅读 · 0 评论 -
C++ 共享数据的保护(第五章)
共享数据的保护l对于既需要共享、又需要防止改变的数据应该声明为常类型(用const进行修饰)。l对于不改变对象状态的成员函数应该声明为常函数。常类型l常对象:必须进行初始化,不能被更新。nconst 类名 对象名l常成员n用const进行修饰的类成员:常数据成员和常函数成员l常引用:被引用的对象不能被更新。nconst 类型说明符 &引用名l常数组:数组元素不能被更新(详见第6章)。n类型说明符 const ...原创 2022-01-13 06:00:00 · 347 阅读 · 0 评论 -
C++ 类的友元(第五章)
目录类的友元友元函数例5-6使用友元函数计算两点间的距离友元类类的友元关系是单向的类的友元友元是C++提供的一种破坏数据封装和数据隐藏的机制。通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。可以使用友元函数和友元类。为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。友元函数友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问private和p...原创 2022-01-13 06:00:00 · 198 阅读 · 0 评论 -
C++ 类的静态成员(第五章)
目录l静态数据成员l例5-4 具有静态数据成员的Point类运行结果:静态函数成员例5-5具有静态数据、函数成员的 Point类l静态数据成员n用关键字static声明n为该类的所有对象共享,静态数据成员具有静态生存期。n必须在类外定义和初始化,用(::)来指明所属的类。 l例5-4 具有静态数据成员的Point类//5_4.cpp#include <iostream>using namespace std;class...原创 2022-01-12 06:00:00 · 357 阅读 · 0 评论 -
C++ 对象的生存期(第五章)
目录静态生存期动态生存期例5-2变量的生存期与可见性例5-2(续)静态生存期这种生存期与程序的运行期相同。在文件作用域中声明的对象具有这种生存期。在函数内部声明静态生存期对象,要冠以关键字static。动态生存期块作用域中声明的,没有用static修饰的对象是动态生存期的对象(习惯称局部生存期对象)。开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。例5-2变量的生存期与可见性#include<iostream>using n.原创 2022-01-12 06:00:00 · 291 阅读 · 0 评论 -
C++ 标识符的作用域与可见性(第五章)
标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域。 作用域分类 函数原型作用域 局部作用域(块作用域) 类作用域 文件作用域 命名空间作用域(详见第10章)函数原形作用域 函数原型中的参数,其作用域始于"(",结束于")"。 函数原形作用域举例double area(double radius);局部作用域 函数的形参、在块中声明的标识符;...原创 2022-01-11 06:00:00 · 342 阅读 · 0 评论 -
C++ 枚举类(强类型枚举)(第四章)
目录枚举类定义枚举类的优势例4-9枚举类举例枚举类定义l语法形式enum class 枚举类型名: 底层类型 {枚举值列表};l例:enum class Type { General, Light, Medium, Heavy};enum class Type: char { General, Light, Medium, Heavy};enum class Category { General=1, Pistol, MachineGun, Cannon};...原创 2022-01-11 06:00:00 · 337 阅读 · 0 评论 -
C++ 结构体和联合体(第四章)
结构体 结构体是一种特殊形态的类 与类的唯一区别:类的缺省访问权限是private,结构体的缺省访问权限是public 结构体存在的主要原因:与C语言保持兼容 什么时候用结构体而不用类 定义主要用来保存数据、而没有什么操作的类型 人们习惯将结构体的数据成员设为公有,因此这时用结构体更方便 结构体的定义struct 结构体名称 { 公有成员protected: 保护型成员private: 私有成原创 2022-01-09 06:00:00 · 334 阅读 · 0 评论 -
C++ 类的组合(第四章)
类的组合组合的概念类中的成员是另一个类的对象。可以在已有抽象的基础上实现更复杂的抽象。类组合的构造函数设计原则:不仅要负责对本类中的基本类型成员数据初始化,也要对对象成员初始化。声明形式:类名::类名(对象成员所需的形参,本类成员形参):对象1(参数),对象2(参数),......{//函数体其他语句}构造组合类对象时的初始化次序首先对构造函数初始化列表中列出的成员(包括基...原创 2022-01-10 06:00:00 · 458 阅读 · 0 评论 -
C++ 构造函数(第四章)
目录构造函数基本概念构造函数的作用构造函数的形式构造函数的调用时机默认构造函数隐含生成的构造函数“=default”例4_1修改版1例4_1修改版2委托构造函数回顾委托构造函数复制构造函数复制构造函数定义隐含的复制构造函数“=delete”复制构造函数被调用的三种情况例 4-2 Point 类的完整程序析构函数构造函数基本概念构造函数的作用 在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的初始状态。原创 2022-01-09 06:00:00 · 442 阅读 · 0 评论 -
C++ 类和对象(第四章)
类和对象的定义l对象是现实中的对象在程序中的模拟。l类是同一类对象的抽象,对象时类的某一特定实体。l定义类的对象,才可以通过对象使用类中定义的功能。设计类就是设计类型l此类型的“合法值”是什么?l此类型应该有什么样的函数和操作符?l新类型的对象该如何被创建和销毁?l如何进行对象的初始化和赋值?l对象作为函数的参数如何以值传递?l谁将使用此类型的对象成员?类定义的语法形式class 类名称{ public:...原创 2022-01-08 06:00:00 · 153 阅读 · 0 评论 -
C++ 系统函数(第三章)
系统函数lC++的系统库中提供了几百个函数可供程序员使用,例如:n求平方根函数(sqrt)n求绝对值函数(abs)l使用系统函数时要包含相应的头文件,例如:cmath例3-17系统函数应用举例l题目:n从键盘输入一个角度值,求出该角度的正弦值、余弦值和正切值。l分析:n系统函数中提供了求正弦值、余弦值和正切值的函数:sin()、cos()、tan(),函数的说明在头文件cmath中。l源代码#include <io...原创 2022-01-07 06:00:00 · 1443 阅读 · 0 评论 -
C++ 函数重载(第三章)
函数重载的概念 C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。 例: 注意事项 重载函数的形参必须不同:个数不同或类型不同。 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。 不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好: 例3-16重载函数应用举例 编写两个名为sumOfSquare的重载函数,分别求两整数的平方和原创 2022-01-06 06:00:00 · 310 阅读 · 0 评论 -
C++ 带默认参数值的函数(第三章)
目录默认参数值默认参数值的说明次序默认参数值与函数的调用位置例3-15计算长方体的体积源代码默认参数值l可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值。l例:int add(int x = 5,int y = 6) { return x + y;}int main() { add(10,20); //10+20 add(10); //10+6 add(); ...原创 2022-01-07 06:00:00 · 1208 阅读 · 0 评论 -
C++ C++11给的新函数(第三章)
目录内联函数例3-14内联函数应用举例constexpr函数constexpr函数语法规定constexpr函数举例内联函数l声明时使用关键字inline。l编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。l注意:n内联函数体内不能有循环语句和switch语句;n内联函数的定义必须出现在内联函数第一次被调用之前;n对内联函数不能进行异常接口声明。例3-14内联函数应用举例#include <...原创 2022-01-08 06:00:00 · 161 阅读 · 0 评论 -
C++ 含有可变参数的函数(第三章)
目录含有可变参数的函数initializer_list提供的操作initializer_list的使用方法initializer_list使用举例含有可变参数的函数C++标准中提供了两种主要的方法 如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型; 如果实参的类型不同,我们可以编写可变参数的模板(第9章)。 initializer_list initializer_list是一种标准库类型,用于表示某种特定类型的值的数组,原创 2022-01-06 06:00:00 · 274 阅读 · 0 评论 -
C++ 引用类型(第三章)
C++ 引用类型原创 2022-01-05 06:00:00 · 219 阅读 · 0 评论 -
C++ 嵌套与递归(第三章)
目录函数的嵌套调用嵌套调用例3-7 输入两个整数,求平方和函数的递归调用定义例:计算n!例如,计算4!的两个阶段:例3-8 求n!源代码:运行结果:例 3-9 用递归法计算从 n 个人中选选 k 个人组成一个委员会的不同组合数。 分析源代码:运行结果:例3-10汉诺塔源代码:运行结果:函数的嵌套调用 嵌套调用例3-7 输入两个整数,求平方和#include <iostream>using n原创 2022-01-05 06:00:00 · 609 阅读 · 0 评论 -
C++ 函数(模块化编程)
函数定义函数函数:定义好的、可重用的功能模块定义函数:将一个模块的算法用C++描述出来函数名:功能模块的名字函数的参数:计算所需要的数据和条件函数的返回值:需要返回的计算结果函数定义的语法形式函数名形式参数表语句序列类型标识符函数调用调用函数需要先声明函数原型若函数定义在调用点之前,可以不另外声明;若函数定义在调用点之后,必须要在调用函数前声明函数原型:函数原型:类型标识符 被调用函数名(含类型说明的形参表)函数调用形式函数原创 2022-01-04 06:00:00 · 1889 阅读 · 0 评论 -
C++ 自定义类型(第二章)
C++ 自定义类型原创 2022-01-03 06:00:00 · 146 阅读 · 0 评论 -
C++ 循环结构(第二章)
C++ 循环结构原创 2022-01-04 06:00:00 · 655 阅读 · 0 评论 -
C++ 选择结构(第二章)
C++ 选择结构原创 2022-01-03 06:00:00 · 163 阅读 · 0 评论 -
C++ 关于编程(绪论)
一、计算机系统l计算机系统由硬件、软件组成;l指令系统是硬件和软件的界面。二、计算机语言和程序设计方法l计算机语言n程序员与计算机沟通的语言;n描述解决问题的方法和相关数据。l计算机语言的级别n二进制代码构成的机器语言;n使用助记符的汇编语言;n使用类似英语单词和语句的高级语言;nC++是面向对象的高级语言lC++支持的程序设计方法n面向过程的程序设计方法;n面向对象的程序设计方法;n泛型程序设计方法。三、C++程序的开发过程l算法设计.原创 2022-01-01 06:00:00 · 324 阅读 · 0 评论 -
C++ 运算与表达式(第二章)
C++ 运算与表达式原创 2022-01-03 06:00:00 · 585 阅读 · 0 评论 -
C++ C++的特点和程序实例(第一章)
C++的产生和发展l从C语言发展演变而来,最初被称为"带类的C";l1983年正式取名为C++;l1998年11月被国际标准化组织(ISO)批准为国际标准;l2003年10月15日发布第2版C++标准ISO/IEC 14882:2003;l2011年8月12日ISO公布了第三版C++标准C++11,包含核心语言的新机能、扩展C++标准程序库。l2014年8月18日ISO公布了C++14,其正式名称为"International Standard ISO/IEC...原创 2022-01-01 06:00:00 · 164 阅读 · 0 评论 -
C++字符集和词法记号(第一章)
字符集l大小写的英文字母:A~Z,a~zl数字字符:0~9l特殊字符: ! # % ^ & * _ + = - ~ < >...原创 2022-01-02 06:00:00 · 430 阅读 · 0 评论 -
C++ 基本数据类型、常量、变量(第二章)
C++ 基本数据类型、常量、变量原创 2022-01-02 06:00:00 · 398 阅读 · 0 评论 -
C++ 数据的输入与输出(第二章)
I/O流l在C++中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前要被建立,使用后要被删除。l数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。cin用来处理标准输入,即键盘输入。cout用来处理标准输出,即屏幕输出。l从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。预定义的插入符和提取符l“<<”是预定义的插入符,作用在流类对象cout上便可以实现项标准输出设备输出。ncout &...原创 2022-01-02 06:00:00 · 250 阅读 · 0 评论
分享