全国统一服务热线

185-8621-3393

新闻中心

当前位置:首页>新闻中心

C++学习的难点

指针

关于指针已经讲过很多次了。理解指针你需要先理解计算机内存和内存地址概念,还有*和&运算符。

比喻式理解:

内存可以理解为土地,内存地址理解为土地编号,当我们的程序在创建变量和对象时,计算机会充当规划局的角色为变量和对象划分一块有编号的土地存放变量和对象,这就叫内存,而编号就叫内存地址。土地有使用期限(70年),期限后收回,计算机中变量和对象释放时也会释放内存被回收。

指针:指针本身也是一个变量,类似int或者float类型,只不过int存放的是10、146等这样的整型数据,而指针变量存放的是内存的地址。

*运算符:取内存地址上所存对象。

&运算符:取对象所在内存的地址。

指针指向:我们常说的某某指针指向谁,意思是,这个指针变量存放着那个对象在计算机内存中的地址。

泛型编程

C++的泛型是基于模板实现的。不管是类模板或是函数模板,都不是真正的类或函数,只是一个编译器用来生成代码的蓝图。

为什么需要泛型编程呢?

较简单的一个例子,假设你实现了一个链表的类,可以用来动态存储int型数据。但是现在又有一个需求是动态存储string类型的数据,这时候你怎么办呢?重新为存储string数据的链表单再实现一个类?这显然是不符合代码重用性原则的,这时候你可能会想到能不能将数据类型用参数的方式传进去。这就是C++泛型编程的由来;

函数模板

数据的类型也可以通过参数来传递,若在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器才根据传入的实参进行自动地推断数据类型,这样就实现了函数的模板。利用虚拟的类型来作为一个标识符来占位,等发生函数调用时再根据传入的实参来反向推断出真正的类型。


QQ咨询
在线咨询
在线报名
185-8621-3393
185-8621-3393
返回顶部