1. []

  这让我想到静态分配内存和动态分配内存,与数据名称无关

  局部变量和临时变量会储存在静态缓存区,随着程序运行完而消亡(例如在循环体中定义的局部变量随着循环体结束,局部变量也会消亡)。

  内存泄漏是指:就是内存驻留了指针存在了未指向的内存空间的地址值。

  例子:声明一个指针对象,指针指向的结果为对象在内存中动态分配的空间,其后在操作中又将另一对象的内存地址赋给它,最后没有对之前指针指向的内存空间进行delete.

int *old   = new int;
int *new = new int
//delete old
*old = *new
cout<<*old<<endl;

2. * 指针

  指针就是变量,在程序中将经常用到指针,其中应该理解:指针、内存地址值、位置、地址所在内存中的值

  int *point = new int(1);  //指针-*point   内存地址值-point   位置-point   地址所在内存中的值-1

3. &

  隐式指针, 在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,可提高程序执行效率和代码的健壮性!

  int a; int &ya=a; //定义了引用ya,它是变量a的引用(别名)      参考:C++中引用(&)的用法和应用实例

    ()&在此不是求地址运算,而是起标识作用。

  ()类型标识符是指目标变量的类型。

  ()声明引用时,必须同时对其进行初始化。

  ()引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

   ra=; 等价于 a=;

  ()声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。

  ()不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

  应用:

    1. 引用作为参数

    函数的传递方式有两种:传值、传址。 传值方式为C语言常见的,往往是将数据压入栈中(由编译器自动释放空间,栈的初始大小是由操作系统硬件决定),影响效率。如果是将引用作为参数传递,速度和效率不用说了.

    swap(a,b) 和swap(&a,&b);

4. new

  操作符动态分配内存。 通常情况下会声明一个指针,指针的值就是new操作符为某个数据类型动态分配一个足够大的内存空间。

5. const

  不容改变的

6. inline

  适当加入此修饰能提高程序的运行效率

  inline void getElements(DataType *data);

7. virtual

  此修饰符有点像多态的意思,当基类中的某函数被virtual修饰时(public),程序调用此函数,则会执行继承该基类的派生类中的方法。

  

class A
{
public:
A() {}
virtual void foo()
{
cout << "This is A." << endl;
}
};
class B : public A
{
public:
B() {}
void foo()
{
cout << "This is B." << endl;
}
};
int main(int argc, char* argv[])
{
A *a = new B();
a->foo();
if(a != NULL)
delete a;
return ;
}
excute: This is B.
 

最新文章

  1. 【Quartz】配置最简单的集群
  2. WinForm窗体嵌入
  3. HTML5移动Web开发(一)——HTML5和移动网站基本概念以及一些模拟器
  4. php数组函数
  5. android官方开源的高性能异步加载网络图片的Gridview例子
  6. Commons CLI - Option Properties
  7. uva 1396 - Most Distant Point from the Sea
  8. [SignalR]在非Hub继承类中使用脚本方法
  9. JavaWeb之session
  10. nrm的安装 、定义和用法
  11. mysql 无法插入中文
  12. 如何在页面上同时使用 jQuery 和其他框架?
  13. How to recovery compiz
  14. HBase过滤器的使用
  15. onload、onpageshow、onpagehide、onbeforeunload、onunload的谣言纠正及特点介绍
  16. Luogu4219 BJOI2014 大融合 LCT
  17. 075 importSTV的使用,与bulkload的使用
  18. scrapy框架之分布式操作
  19. http缓存详解,http缓存推荐方案
  20. BLACKPYTHON学习(一)

热门文章

  1. struts2 常用标签
  2. 5种样式实现div容器中三图摆放实例对比说明
  3. 新建 jsp异常,The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path
  4. 异常:Caused by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z/Caused by: java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreign
  5. CentOS erlang安装、emqtt
  6. 【SSH之旅】一步步学习Struts1框架(二):Struts实例
  7. Lintcode---二叉树的层次遍历(原型)
  8. swiper动态加载数据滑动失效,ajax执行后swiper.js的效果消失问题
  9. Jetty - LifeCycle源码分析
  10. python学习之strip()