C++面向对象编程之类模板、函数模板等一些补充
1.static数据 和 static函数:
对于 非static函数 在内存中只有一份,当类对象调用时,其实会有该对象的this pointer传进去,那个函数就知道要对那个对象进行操作;
static 数据 和 static函数 在内存中也是只有一份,一般 static数据 使用是在该类所有对象都有的同一个东西;
static函数 没有this pointer,它是用来对 static数据 进行一些操作的函数;
2.把构造函数放在private部分的情况:
这样的情况是想:希望这个类只会产生一个对象,不想让外界可以创建该类对象;
这个对象用static 创建,用一个在public的static函数,函数里创建这个唯一的 static对象,这样只有在调用这个 static函数后才会生产这个唯一的对象,其他时刻就没这个对象,也不会占用空间。

3.cout 是继承 ostream 的一个类,ostream里重载了多种类型的 << ,所以cout 才可以直接 cout << ...;
4.class template类模板:
写时在类前template<typename T>, 使用时 "类名称<绑定的数据类型> 对象名称"
5.function template,在函数前:template<class T> 或者 template<typename T>,一般class 和 typename 是相通的;
使用时编译器会对function template进行参数推到,不需要像class template那样要绑定数据类型;
6.namesapce,"namesapce std"里有很多东西被包含进这个std里了,std是这个空间的名字,像cout、cin都在std里,有以下几种写法:
1)前面using namespace std;后,后面直接用cin >> ... 或者 cout << ...
2)前面using std::cout,后面直接cout << ...,但是使用cin时要 std::cin >>
3)用时直接std::cin >> ,std::cout <<
C++面向对象编程之类模板、函数模板等一些补充的更多相关文章
- 面向对象编程 —— java实现函数求导
		
文章目录 ★引子 ★求导 ★最初的想法 ★初步的想法 ★后来的想法 ★最后的想法 ★编程范式 ★结尾 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科 ...
 - C++:模板——函数模板1
		
一.为什么使用函数模板 假设我们在程序中需要比较两个变量的大小,但变量的类型可能是int.float或者double,此时为了满足程序的要求我们可能会在程序中编写多个函数,如: //比较两个int型变 ...
 - JavaScript面向对象编程指南(三) 函数
		
第3章 函数 3.1 什么是函数 函数:本质是一种代码的分组形式.函数的声明如下: <script type="text/javascript"> /*函数的声明组成: ...
 - javascript面向对象编程笔记(函数之闭包)
		
3 函数 3.5 闭包(closures) 3.5.1 作用域链 与很多程序设计语言不同,javascript不存在大括号级的作用域,但它有函数作用域,即在函数内定义的变量在函数外是不可见的.但如果该 ...
 - javascript面向对象编程笔记(函数)
		
第三章 函数 3.1 什么是函数 一般来说,函数声明通常由以下几部分组成: function子句 函数名称 函数所需参数 函数体 return子句.如果某个函数没有显示的返回值,默认它的返回值为und ...
 - C++学习笔记35:函数模板
		
函数模板 函数模板的目的 设计通用的函数,以适应广泛的数据型式 函数模板的定义格式 template<模板型式参数列表>返回值型式 函数名称(参数列表): 原型:template<c ...
 - C++—模板(1)模板与函数模板
		
1.引入 如何编写一个通用加法函数?第一个方法是使用函数重载, 针对每个所需相同行为的不同类型重新实现这个函数.C++的这种编程机制给编程者极大的方便,不需要为功能相似.参数不同的函数选用不同的函数名 ...
 - C++解析(26):函数模板与类模板
		
0.目录 1.函数模板 1.1 函数模板与泛型编程 1.2 多参数函数模板 1.3 函数重载遇上函数模板 2.类模板 2.1 类模板 2.2 多参数类模板与特化 2.3 特化的深度分析 3.小结 1. ...
 - C++ 函数模板用法
		
泛型编程概念:不考虑具体数据类型的编程方式: 函数模板: 1.提供一种特殊的函数可用不同类型进行调用: 2.与普通函数很相似,区别是类型可被参数化: template <typename T&g ...
 - C++ 模板常见特性(函数模板、类模板)
		
背景 C++ 是很强大,有各种特性来提高代码的可重用性,有助于减少开发的代码量和工作量. C++ 提高代码的可重用性主要有两方面: 继承 模板 继承的特性我已在前面篇章写过了,本篇主要是说明「模板」的 ...
 
随机推荐
- 四边形不等式优化 dp (doing)
			
目录 1. 四边形不等式与决策单调性 2. 决策单调性优化 dp - (i) 关于符号 1. 四边形不等式与决策单调性 定义(四边形不等式) 设 \(w(x,y)\) 是定义在整数集合上的二元函数,若 ...
 - YII自定义第三方扩展
			
cat.php <?php /** * Created by PhpStorm. * Date: 2016/5/25 * Time: 15:23 */ namespace vendor\anim ...
 - SpringBoot的创建和特性
			
一.SpringBoot的特点 创建独立的Spring应用程序 直接嵌入Tomcat.Jetty或Undertow(无需部署WAR文件) 提供自以为是的"starter"依赖项,以 ...
 - Luogu1993 小K的农场 (差分约束)
			
\(if \ a - b <= c, AddEdge(b, a, c)\) Be careful, MLE is not good. #include <cstdio> #inclu ...
 - C++ 文件hash值  BT种子的hash值
			
这个两个东东,是我在网上找到的.小小的修改了一下方便大家使用. 一个是 获取文件哈希值的,另外一个是获取torrent文件磁力链接的哈希值. 整理好的类下载地址: 文件hash值: http://pa ...
 - Spring 04: IOC控制反转 + DI依赖注入
			
Spring中的IOC 一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 ...
 - java中的字符流知识点总结
			
java中字符流 字符流:对文本的读取,速度比字节流快 常见的字符流:Reader 和 Writer Reader是InputStreamReader的父类,InputStreamReader是Fil ...
 - Spring5事务管理
			
事务管理是什么? 相当于过滤器,如果这一进程中上一个操作正常执行完后提交数据已经发生改变,但是下一个操作中出现了异常,这样就会影响数据的查看. 典型例子:银行转账,甲方已经转钱给乙方(甲方已扣钱),乙 ...
 - 并发编程二、CPU多级缓存架构与MESI协议的诞生
			
前言: 文章内容:线程与进程.线程生命周期.线程中断.线程常见问题总结 本文章内容来源于笔者学习笔记,内容可能与相关书籍内容重合 偏向于知识核心总结,非零基础学习文章,可用于知识的体系建立,核心内容 ...
 - c++的一些笔记
			
--const 的一些用法 1,修饰指针 const int *p=.... 可以改变指针所指的位置,但不能改变指向位置的值. 2,修饰变量 int const * p=.... 可以改变指向位 ...