c++类构造函数详解 android软件开发教程

  次阅读 来源:互联网(转载协议) 2016-03-01 13:19 我要评论(0)

这篇文章主要介绍了c++类构造函数示例,需要的朋友可以参考下

代码如下:

//一、 构造函数是干什么的

/* 类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数->由构造函数完成成员的初始化工作

eg: Counter c1;

编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter()自动地初始化对象,初始化之后c1的m_value值设置为0

故:构造函数的作用:初始化对象的数据成员。*/

class Counter

{

public: // 类Counter的构造函数,以类名作为函数名,无返回类型

Counter(){

m_value = 0;

}

private:

int m_value; // 类私有的数据成员

}

//二、 构造函数的种类

#include

using namespace std;

class Complex

{

private :

double m_real;

double m_imag;

public:

//*无参数构造函数

// 如果创建一个类你没有写任何构造函数,则系统会自动生成默认的无参构造函数,函数为空,什么都不做

// 只要你写了一个下面的某一种构造函数,系统就不会再自动生成这样一个默认的构造函数,如果希望有一个这样的无参构造函数,则需要自己显示地写出来

Complex(void)

{ m_real = 0.0;

m_imag = 0.0;

}

//*一般构造函数(也称重载构造函数)

//一般构造函数可以有各种参数形式,一个类可以有多个一般构造函数,前提是参数的个数或者类型不同(基于c++的重载函数原理)

//例如:你还可以写一个 Complex(int num)的构造函数出来,创建对象时根据传入的参数不同调用不同的构造函数

Complex(double real, double imag)

{ m_real = real;

m_imag = imag;

}

//*复制构造函数(也称为拷贝构造函数)

//复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中

//若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统默认创建该复制构造函数会存在风险,具体原因在有关“浅拷贝”、“深拷贝”的文章中论述

Complex(const Complex & c)

{ // 将对象c中的数据成员值复制过来

m_real = c.m_real;

m_imag = c.m_imag;

}

//*类型转换构造函数,根据一个指定的类型的对象创建一个本类的对象,需要注意的一点是,这个其实就是一般的构造函数,但是对于出现这种单参数的构造函数,C++会默认将参数对应的类型转换为该类类型,

//有时候这种隐私的转换是我们所不想要的,所以需要使用explicit来限制这种转换。

//例如:下面将根据一个double类型的对象创建了一个Complex对象

Complex(double r)

{ m_real = r;

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...