C++温故而知新----1

存疑概念:
。名称空间声明的名称链接性默认为外部的(除非引用了常量)?
提醒:
。引用声明时就得初始化
。当函数参数为引用时,实参应是变量,不能是表达式
。对于基本类型,cin使用引用 //cin >> n;
。const数据的指针和引用优先于非const数据的指针和引用匹配
重要知识点:
第八章 
8.2 引用
8.2.3引用的属性和特别之处
临时变量、引用参数和const
。生成临时变量情况
1.形参为const
2.实参类型正确不是左值/实参类型不正确,可转化为正确类型
8.2.7何时使用引用参数
主要原因
1.能够修改调用函数中的数据对象
2.提高程序速度

8.3 默认参数
。设置一个默认参数,这个参数的右边都得设置
。声明函数有默认参数,定义时不需要加

8.4 函数重载
。函数特征不包括返回值
。最佳匹配
void stove(double &r1);
void stove(const double &r2);
void stove(double && r3);

8.5 函数模板
template <class T>
void swap(T a,T b)
{
T temp;
temp = a;
a = b;
b = temp;
}
8.5.3显示具体化---提供具体化的函数定义
第三代具体化
。对于给定函数名,可有非模板函数、模板函数和显示具体化模板函数以及他们的重载
。显示具体化的原型和定义以template<>开头,通过名称指出类型
。具体化优先于常规模板,而非模板优先于具体化
8.5.4实例化和具体化
。隐式实例化
通过使用模板函数
。显示实例化
直接用命令,令编译器创建特定实例
template void swap(int &,int &); //与具体化有区别
8.5.5编译器使用哪个版本
完全匹配(常规优先于模板)>提升转换(char,shorts自动转为int)>标准转换(int转为char)>用户定义转换(类声明中定义)
。自己选择匹配
void swap(int a,int b);
template<class T>
void swap(T a,T b);

swap(a,b); //使用常规
swap<>(a,b); //显示指出使用模板

8.5.6 模板函数的发展
2.关键字decltype(decltype(expression) var)
int x;
decltype(x) y; //y与x类型相同
decltype(x + y) xpy = x + y;
1。若expression是一个没有括号扩起的标识符,var与标识符相同
2。若expression为函数调用,var类型参照函数原型,不实际调用
3。若expression为一个左值,var为其类型的引用(用括号扩起expression)
decltype((xxx)) r = xxx; //r为一个xxx的类型的引用
4.以上均不满足,则与expression的类型相同
*以上四条按顺序判定
3另一种函数声明法
auto h(int x,float y) -> double;
auto h(int x,float y) -> double{}

template<class T1,class T2>
auto gt(T1 x,T2 y) -> decltype(x + y){}

第九章
9.2 存储持续性、作用域和链接性
9.2.1作用域和链接
。链接性描述了名称如何在不同文件直接共享。如自动变量无链接性,所以不能共享。
9.2.3静态持续变量
int global = 100; //外部链接性
static int one_file = 50 //内部链接性
void function()
{
static int count = 0; //无链接性
}
9.2.4静态持续性和外部链接性
1.单定义规则:变量只能有一次定义
变量声明
1.定义声明/定义:给变量分配存储空间
2.引用声明/声明:不分配存储空间,因为引用已知变量
引用声明需extern关键字,且不进行初始化
9.2.5静态持续性和内部链接性
。static限定符用于作用域为整个文件的变量时,链接性为内部
9.2.6静态持续性和无链接性
。将static限定于代码块中,只能在代码块中使用
9.2.7说明符限定符
2.mutable
使在const修饰的类/结构的某个成员可被修改
struct data
{
char name[20];
mutable int access; //若结构被声明为const,access可以改变
}
3.再谈const
C++中,const修饰的全局变量的链接性为内部的
9.2.8函数的链接性
。函数默认有外部链接性,其他文件使用,需要extern的函数原型
。内联函数可以一定程度不受单定义限制(在多个文件定义相同内联函数)
。static修饰的函数为内部链接
9.2.10储存方案和动态分配
1.new运算符初始化
int *pi = new int(6);

struct where{double x;double y};
where *one = new where{2.5,5.3};
int *pdo = new int[4]{1,2,3,4};

int *pin = new int{6};
3.new:运算符、函数和替换函数
new void *operator new(std::size_t); //对应相同delete函数
new[] void *operator new[](std::size_t); //对应相同delete[]函数
*std::size_t是一个typedef
new int; 相当于new(sizeof(int))
new int[20]; 相当于new(20*sizeof(int))
4.定位new运算符
。需要包含头文件<new>,需要提供指定位置的参数
#include<new>
char buffer[50];
char buffer1[50];
int main()
{
char *p1 = new(buffer);
int *p2 = new(buffer)[5];
//静态定位的指针不需要delete释放
//buffer为动态分配时,直接释放buffer即可
return 0;
}

9.3 名称空间
9.3.1传统的C++名称空间
。声明区域:可以在其中进行声明的区域。如变量所在文件对于全局变量,变量所在代码块对于自动变量
。潜在作用域:从变量声明点开始,到声明区域结束
。作用域:变量对于程序来说可见的范围
9.3.2新的名称空间特性
。名称空间可以全局,也可以位于另一个名称空间内,不能位于代码块内。
。名称空间声明的名称链接性默认为外部的(除非引用了常量)
1.using声明和using编译指令
。using声明将特定的名称添加到它所属的声明区域中
在代码块内引入,覆盖全局变量,通过::全局变量名,在代码块中使用全局变量
。using编译指令使所有的名称可用
2.using声明和using编译指令的比较
。编译指令类似于使用了大量的作用域解析符
。声明类似于声明了相应的名称
*假设名称空间和声明区域定义了相同名称。不允许使用using声明。使用using编译指令将名称空间的名称导入该声明区域,则局部版本将隐藏名称空间版本。
3。名称空间其他特性
。名称空间可以嵌套
。名称空间可以使用using编译指令和using声明
。using编译指令具有传递性
4。未命名的名称空间
namespace
{
int ice;
int other;
}
相当于
static int ice;
static int other;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
### 回答1: 1 University students can understand innovation through learning from the past. 2. Students can better review by breaking down complex concepts into smaller components and studying the material in an organized way. 3. When learning from the past to understand innovation, it is important to focus on understanding the big picture and to not get bogged down in the details. ### 回答2: 1. 大学生如何理解温故而知新温故而知新是一种学习方法,它要求我们在学习新知识之前先回顾和巩固已经学过的知识。大学生理解温故而知新意味着要在学习新知识之前,先回顾和复习以前学过的相关知识或基础知识。通过温故,我们能够加深对已有知识的理解和记忆,从而更好地理解和掌握新的知识。 2. 学生如何更好地去复习? 学生要更好地复习,可以采取以下策略: 首先,制定一个合理的复习计划,将要复习的内容分配到不同的时间段,确保每个科目都有足够的时间。 其次,采用多种复习方法,如阅读教材、做练习题、参加讨论等,以帮助加深理解和牢固记忆。 另外,与同学或老师一起讨论复习内容,通过讲解和互动来加深理解。 此外,保持良好的学习习惯,比如及时复习、做好笔记等,能够帮助学生更好地掌握和复习知识。 3. 温故而知新的过程需要注意什么? 在温故而知新的过程中,需要注意以下几点: 首先,要有针对性,根据自己的学习需求和复习目标,选择性地回顾和复习相关知识点。 其次,要有系统性,将复习内容进行分类整理,形成一个清晰的知识框架,有助于加深理解和记忆。 另外,要关注重难点,重点复习那些相对较难或容易遗忘的知识点,加强对这些内容的学习和理解。 还要有耐心和恒心,温故而知新是一个持续的过程,需要长期坚持和不断巩固。 最后,要善于总结和归纳,通过整理和回顾复习过程中的笔记和练习,提炼出关键概念和思维模式,便于记忆和应用。 ### 回答3: 1. 大学生如何理解温故而知新? 大学生可以理解为通过回顾过去的知识和经验,来获取新的见解和理解。温故是指回顾已经学过的知识,了解其中的原理、概念和重要点。而知新则是指通过对新知识的学习,扩展和更新自己的知识体系。温故而知新相辅相成,是一个持续学习和发展的过程。 2. 学生如何更好地去复习? 学生可以通过以下方式更好地进行复习: - 制定合理的复习计划:根据时间安排和课程难度,合理分配复习时间,确保每个学科都有足够的复习时间。 - 多种复习方法结合:采用不同的学习方式,如阅读教材、做练习题、参与讨论、制作思维导图等,帮助巩固记忆和理解知识。 - 主动参与课堂:积极参与讨论和提问,与同学和老师交流,加深对知识的理解和记忆。 - 不断反思和总结:及时检查自己的复习情况,发现不足和问题,并及时调整学习方法和计划。 3. 温故而知新的过程需要注意什么? 在温故而知新的过程中,学生需要注意以下几点: - 有目的性地温故:针对具体的知识点或者问题进行回顾,明确自己的学习目标和重点。 - 理解和记忆结合:不仅要理解概念和原理,还要通过多次的复习和记忆,帮助信息在大脑中形成长期记忆。 - 理论联系实际:将学到的知识应用到实际情境中,加深对知识的理解和记忆。 - 及时巩固复习成果:通过做练习题、整理笔记、与同学讨论等方式,巩固复习的成果,确保知识掌握得更牢固。 - 长期持续学习:温故而知新是一个持续的过程,要保持学习的热情和动力,不断更新自己的知识体系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值