1、malloc/free和new/delete区别

http://blog.csdn.net/hackbuteer1/article/details/6789164

相同点:都可用于申请动态内存和释放内存

不同点
(1)操作对象有所不同
malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。

2、通过const_cast修改const变量的值

3、dynamic何时返回0

//A为父类;B,C都继承自A

A a; A *pa=&a;  dynamic_cast<B*>(pa);  //pa指向A,不是指向B,dynamic_cast 返回0

B b; A *pa=&b; dynamic_cast<C*>(pa);//pa指向B,虽然C也是A的子类,但是pa不是指向C,返回0

B b; A *pa=&b;dynamic_cast<B*>(pa);//不返回0

例子:
#include<iostream>
using namespace std;
class A
{
public:
virtual void foo()
{
cout<<"A ->foo( ) is called"<<endl;
}
void foo1()
{
cout<<"A->fA( ) is called"<<endl;
}
}; class B: public A
{
public:
void foo()//虚函数
{
cout<<"B->foo( ) is called"<<endl;
}
void foo1()//重载
{
cout<<"B->fA is called"<<endl;
}
void functionB()
{
cout<<"B->functionB is called"<<endl;
}
}; void main()
{
A a;
A *pa=&a;
pa->foo();
pa->foo1();
(dynamic_cast<B *>(pa))->functionB();
//(dynamic_cast<B *>(pa))->foo();//foo()是虚函数,调用出错
(dynamic_cast<B*>(pa))->foo1();
(*pa).foo();
}

最新文章

  1. .NET 新标准介绍
  2. oracle 基础
  3. Java配置环境变量、方法和原因
  4. uva 11178 - Morley&#39;s Theorem
  5. nancy中的诊断功能面板1
  6. 关于HTML的Element
  7. UVaLive 7503 Change (坑题。。。。。。)
  8. Intellij idea 12和设置快捷键修改(加快项目的开发速度与养成良好习惯)
  9. Docker 生成Node.js web app(含端口映射)
  10. MapReduce 规划 六系列 MultipleOutputs采用
  11. PHP实例——输出安全的HTML代码
  12. Mac下Android studio搭建Android开发环境【新手】
  13. 计算机17-3,4作业C
  14. Swagger 配置
  15. PHP SOAP 发送XML
  16. centos7修改系统时间、时区
  17. Hello ThreadPoolExecutor
  18. 002-pro ant design 表单基本使用、state赋值数据父子传输
  19. ORA-06553: PLS-553: character set name is not recognized, while starting Content Store
  20. Servlet 监听器Listener详解

热门文章

  1. delphi 文件夹操作(监控)
  2. Machine Learning 之二,什么监督性学习,非监督性学习。
  3. Maven 打包jar清单
  4. 20140808 const和define区别 内联函数(inline) 栈和堆的地址分配 栈帧
  5. linux 服务器修改密码
  6. Dockerfile的实践2
  7. 监控数据库SqlServer
  8. Unity中动态绘制圆柱体
  9. JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)
  10. Codeforces 1140E DP