C++学习笔记-2-构造函数和析构函数
问题2. 什么时候执行构造函数和析构函数 22:59:40 2015-07-22
做了一个实验:
#include <iostream>
class Object{
public:
Object(){
printf("Create Object\n");
};
~Object(){
printf("Delete Object\n");
}
};
void runObject(){
Object obj;
printf("runObject end\n");
}
int main(){
// Object *obj=new Object();
// delete obj;
runObject();
printf("end\n");
return 0;
}
输出为:
Create Object
runObject end
Delete Object
end
在void runObject()中加一个{}
#include <iostream>
class Object{
public:
Object(){
printf("Create Object\n");
};
~Object(){
printf("Delete Object\n");
}
};
void runObject(){
{
Object obj;
}
printf("runObject end\n");
}
int main(){
// Object *obj=new Object();
// delete obj;
runObject();
printf("end\n");
return 0;
}
输出为:
Create Object
Delete Object
runObject end
end
C++学习笔记-2-构造函数和析构函数的更多相关文章
- C++学习笔记(1)-构造函数与析构函数
1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象. 2.若没有提供任何构造函数,那么c++自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而 ...
- C++学习之类的构造函数、析构函数
在C++的类中,都会有一个或多个构造函数.一个析构函数.一个赋值运算操作符.即使我们自己定义的类中,没有显示定义它们,编译器也会声明一个默认构造函数.一个析构函数和一个赋值运算操作符.例如: //声明 ...
- C++基础学习9:构造函数和析构函数
1. 构造函数用来对类对象进行初始化,它完成对内存空间的申请.赋初值等工作. 2. 析构函数主要是用来做清理工作的. 补充:函数名或变量名前面有"::"但是没有类名,说明这是 ...
- Vue2.x源码学习笔记-Vue构造函数
我们知道使用vue.js开发应用时,都是new Vue({}/*options*/) 那Vue构造函数上有哪些静态属性和方法呢?其原型上又有哪些方法呢? 一般我都会在浏览器中输入Vue来look se ...
- PHP学习笔记十九【析构函数】
<?php class Person{ public $name; public $age; public function __construct($iname,$iage) { $this- ...
- java学习笔记之-构造函数
目的: 数据的初始化是非常重要的,未经初始化的数据很多情况下都不是期望的结果,很多忘记初始化的数据是导致错误的根源.构造函数就是提供了一个初始化的地方,可以把初始化数据的代码写在构造函数里.当然允许你 ...
- 【c# 学习笔记】构造函数
构造函数 主要用于创建类的实例对象.当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员.构造函数分为实例构造函数和静态构造函数两种. 1.实例构造函数 实例构造函数用于创建和 ...
- 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记
10.3.1 声明和定义构造函数构造函数原型:// constructor prototype with some default argumentsStock(const string &c ...
- C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序
C++类的数组中构造函数和析构函数的调用顺序(2) 对于如下的代码: #include<iostream> using namespace std; class CBase { priva ...
- C++学习笔记(6)----基类和派生类的构造函数和析构函数的执行顺序
基类和派生类:构造函数和析构函数的执行顺序 在Visual Studio中,新建控制台工程,构造类如下: #include<iostream> using namespace std; c ...
随机推荐
- js数组如何去掉逗号
技术水平比较差,有错误的地方或者大神们有好的方法在介绍下,可以指点出来我加以改正! 1.join去掉逗号',' var a = ['1', '2', '3', '4', '5']; var c = a ...
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- MySQL 数据库 引擎
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引 擎:ISAM.MYISAM和HEAP.另外两种类型I ...
- JavaScript高级程序设计41.pdf
事件对象 在触发DOM上某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息. DOM中的事件对象 兼容DOM的浏览器会将event对象传入到事件处理程序中,无论指定事件处理 ...
- 将多个Sheet导入到同一个Excel文件中
实体类excel import java.util.List; /** * 功能: * 描述: * @author * @date 2015-3-19 下午5:15:48 */ public clas ...
- MySQL开启远程链接(2014.12.12)
MySQL默认是关闭远程链接的,只能通过localhost访问本地数据库 如果不是本地访问就需要打开MySQL的远程连接: 基本步骤其实很简单: 1.进入mysql 2.依次运行下面的命令(黄色的为命 ...
- []cp,转载]提示MyEclipse Trial Expired,如何手动获取MyEclipse 注册码!很牛!
1.建立JAVA Project,随便命名,只要符合规则就行. 2.在刚刚建好的Project右击src,新建一个类,命名为MyEclipseGen,把.java里本来有的代码全部删掉,再把下面的代码 ...
- equals()和hashCode()区别?
equals()和hashCode()区别? ------------------------------------------------- equals():反映的是对象或变量具体的值,即两个对 ...
- ABAP ALV表头的实现
ABAP实现ALV表头的DEMO: 效果: 源代码: *&------------------------------------------------------------------- ...
- 搭建PHP开发环境 apache+MySQL+PHP 安装phpMyAdmin模块
该博文参考的资料来源于: http://wenku.baidu.com/view/0e4c569ddd3383c4bb4cd267.html http://www.cnblogs.com/pharen ...