关于new和delete,有如下代码

// new_test.cpp

#include<iostream>

using namespace std;

class A
{
public:
A()
{
cout << "A()" << endl;
}
int data;
}; class B
{
public:
int data;
}; int main()
{ A *a1 = new A;
cout << "a1->data = " << a1->data << endl; A *a2 = new A();
cout << "a2->data = " << a2->data << endl; cout << "----- 以下没有提供默认构造 -----" << endl; B *b1 = new B;
cout << "b1->data = " << b1->data << endl; B *b2 = new B();
cout << "b2->data = " << b2->data << endl; return ;
}

先是在乌班图下运行:

g++ new_test.cpp

./a.out

可以看出不管是有没有默认的构造函数,data都会被初始化。

关于 new A        new A()      new A(a)  的区别

据说在Windows下结果就不一样了。电脑没有安装vs无法实验,但在公司的电脑上能看出区别 (好吧,程序有点不一样,但只是分割线那里不一样。其他都一样)

先说windows下的结论:

类型 new A  new A() new A(a)
内置类型 以int为例 不会初始化 初始化为0 用自定义的构造函数初始化
class/struct

若人为提供了构造函数,则会调用。

若没有提供构造函数,也不会初始化

若人为提供了构造函数,则会调用

若没有提供构造函数,则调用系统提供的默认的构造函数

 用自定义的构造函数初始化

最新文章

  1. Objective-C中的委托(代理)模式
  2. C#数字格式化
  3. thinkphp ajax添加及删除
  4. apt-get的常用用法
  5. 一个简单WPF登陆界面,包含记住密码,自动登录等功能,简洁美观
  6. ios 开发常用快捷键
  7. (转载)eclipse 快捷键大全,eclipse查找类,文件,添加注释
  8. 使用Alcatraz为Xcode安装XActivatePowerMode插件, 从此敲代码逼格大大滴~
  9. Nothing2
  10. 解决ORA-28000: the account is locked
  11. MySQL InnoDB数据库备份与还原
  12. 水熊虫 - Nature Communication
  13. RabbitMQ_安装配置与管理
  14. Linux系列教程(二十一)——Linux的bash基本功能
  15. 《JAVA程序设计》_第六周学习总结
  16. [MySQL] mysql 的行级显式锁定和悲观锁
  17. java-查看java源码
  18. Java垃圾回收算法和内存分配策略
  19. (C/C++学习笔记) 二十二. 标准模板库
  20. bzoj4458 GTY的OJ (优先队列+倍增)

热门文章

  1. php进程的SIGBUS故障
  2. nyoj 139 我排第几个--康拓展开
  3. NOI2016 山西省省选 第二题序列
  4. android开发中的变量名称
  5. LeetCode题解-----Maximum Gap
  6. Mysql如何清空数据库的所有表数据
  7. 【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局
  8. 页面分享代码share
  9. JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
  10. Unity开发 资源准备