(一)构造函数:用来在创建对象时初始化对象, 即为对象成员变量赋初始值

(二)构造函数的命名必须和类名完全相同
(三)更对具体的查看:构造函数
(四)直接分析程序

运行结果

解析上面程序:
1. 当程序运行到四点时候,就会自动调用第一点无参构造函数,打印Person()
2. 当运行到第5点时候,就会调用第2点有参构造函数,并初始化相关参数,打印Person(char *,int)
3. per2.printInfo();打印初始化了的参数
4. 当程序运行结束之后,会调用析构函数,调用两次,因为per1和per2各一次
 
注意:构造函数可以有很多个,但是析构函数只能有一个
 #include <iostream>
#include <string.h>
using namespace std;
class Person{
private:
char *name;
int age;
public: Person(){ /*构造函数*/
this->name = NULL;
this->age = NULL;
cout<<"Person()"<<endl;
}
Person(char *name,int age){ /*构造函数*/
cout<<"Person(char *,int)"<<endl;
this->name = new char[strlen(name) + ];
strcpy(this->name,name);
this->age = age; }
~Person(){
cout<<"~Person()"<<endl;
delete [] name;
} /*析构函数,当子程序运行结束时候系统自动调用*/
void printInfo(void);
};
void Person::printInfo(void)
{
cout<<"name = "<<name<<"age = "<<age<<endl;
}
int main(int argc,char ** argv)
{
Person per1; /*调用构造函数,打印无参时候的Person()*/
Person per2("zhangsan",);/*调用构造函数,打印Person(char *,int)*/
per2.printInfo();
return ;
}

mian.cpp

007_linuxC++之_构造函数的初级应用的更多相关文章

  1. C# 父子类_实例_静态成员变量_构造函数的执行顺序

    今天去面试的时候被一道题问得一点脾气都没有,今天特地来研究下. 子类成员变量,子类静态成员变量,子类构造函数,父类成员变量,父类静态成员变量,父类构造函数的执行顺序. 现在贴上从另外一个.net程序员 ...

  2. File类_构造函数

    File类:用来将文件或者文件夹封装成对象方便对文件或或文件夹的属性信息进行操作File对象可以作为参数传递给流的构造函数 import java.io.File; public class File ...

  3. 虚函数_构造函数_测试_VS2010x86

    1.控制台测试代码: #include <stdio.h> #include <windows.h> class A { public: A() { printf(" ...

  4. C++_构造函数与析构函数

    构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...

  5. Treflection01_Class对象_构造函数_创建对象

    1. package reflectionZ; import java.lang.reflect.Constructor; import java.util.List; public class Tr ...

  6. JS基础_构造函数修改

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. JS基础_构造函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. C#进阶系列——动态Lamada

    前言:在DDD系列文章里面,我们在后台仓储里面封装了传递Lamada表达式的通用方法,类似这样: public virtual IQueryable<TEntity> Find(Expre ...

  9. 【Ethereum】以太坊ERC20 Token标准完整说明

    什么是ERC20 token 市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议. 概述 token代表数字资产,具有价值,但是并不是都符合特定的规范. ...

随机推荐

  1. python爬虫框架scrapy 豆瓣实战

    Scrapy 官方介绍是 An open source and collaborative framework for extracting the data you need from websit ...

  2. 更改CodeBlocks注释的颜色

  3. jenkins 打安卓包 cpu使用过高处理操作

    登录两个控制台 打包开始后 在其中一台机器执行ps -ef |grep jenkins 找到执行打包的主进程复制pid 在另一个终端上执行 top -H -p pid 将最耗cpu的线程id转换为16 ...

  4. 2019牛客多校四 E. triples II (容斥)

    大意: 给定$n,a$, 求$n$个$3$的倍数, $or$和为$a$的方案数. 简单容斥题 可以求出$f_{x,y}$表示所有$3$的倍数中, 奇数位不超过$x$个$1$, 偶数位不超过$y$个$1 ...

  5. BZOJ2555 SubString(后缀自动机+LCT)

    询问串放在SAM上不跳fail跑到的节点的|right|即为答案.用LCT维护parent树即可.可以直接维护子树信息,也可以转化为路径加.注意强制在线所使用的mask是作为参数传进去的. #incl ...

  6. hdu 6208 上一个kmp模板

    #include <cstdio> #include <cstring> #include <iostream> #include <queue> #i ...

  7. centos mysql数据库问题:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'(转)

    问题描述: 安装好数据库MySQL,进入mysql,设置号密码后,退出的时候,利用密码无法进入,直接回车后可进入,无法看到数据库mysql,use mysql返回错误:ERROR 1044 (4200 ...

  8. 字蛛webfont 安装及使用方法

    先安装nodejs和git,比如放在D:/nodejs/  文件夹 cmd 进入该文件夹,安装npm install express 安装 npm install font-spider -g 安装  ...

  9. 工作流引擎Activiti

    背景: 在计算机尚未普及时,许多工作流程采用手工传递纸张表单的方式,一级一级审批签字, 工作效率非常低下,对于数据统计以及生成报表的功能,需要经过大量的手工操作才能实现. 随着电脑的普及,这些工作的参 ...

  10. Go map使用

    前言 map 是在 Go 中将值(value)与键(key)关联的内置类型.通过相应的键可以获取到值. 在一个map里所有的键都是唯一的,而且必须是支持==和!=操作符的类型,切片.函数以及包含切片的 ...