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!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

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

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...