知识大全 C++中初始化物件的资料成员必须要用到建构函式吗

Posted

篇首语:只要持续地努力,不懈地奋斗,就没有征服不了的东西。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C++中初始化物件的资料成员必须要用到建构函式吗相关的知识,希望对你有一定的参考价值。

C++中初始化物件的资料成员必须要用到建构函式吗?请高手详细解答!谢谢!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

C++中初始化物件的资料成员必须要用到建构函式吗?请高手详细解答!谢谢!

一定的,如果你有定义建构函式就用你定义那个,如果你没有自己定义,系统会预设给你一个来用起。

C++类建立建构函式时必须把所有资料成员都初始化吗?

不用,如果你逻辑上不会出现问题,没有强制要求你必须初始化所有成员变数。

C++程式:设计一个钟表类,包括时、分、秒。使用建构函式初始化资料成员

class Clock
int hour,minute,second;
public:
Clock(int hour,int minute,int second):hour(hour),minute(minute),second(second)
;
其中的int最好换成unsigned char,因为都是正的不大的数字

用复制建构函式初始化时静态资料成员怎么办?

在第一次定义类的物件的时候,静态资料成员就需要被初始化一次,以后在定义同类型的物件时,static不能被初始化了,但是可以修改static变数的值。

如果一个数据成员是不具有零引数的建构函式的类型别,那么,该资料成员也必须在初始化列表里进行初始化。

class AA 此类不具有零引数的建构函式

int ii;
public:
零引数的建构函式是这样 AA()ii = 1;
AA(int i)ii = i; 有引数的建构函式
void setMember(int s) ii = s;
;
class BB

AA aa; aa就是"一个数据成员是不具有零引数的建构函式的类型别"
public:
如果写成 BB(int i) aa.setMember(i); 而不是按下一行那样写,编译报错
BB(int i):aa(i) "该资料成员也必须在初始化列表里进行初始化" 指的就是这句中的":aa(i)",
void setMember(int s) aa.setMember(s);
;
void main(void)

BB b(1);
b.setMember(2);

在C++中,如果要呼叫非预设的拷贝建构函式,对于成员物件,是不是要在成员初始化列表中进行初始化?

那要看你是要呼叫成员物件的哪个构造函数了,如果是有引数的就要显式呼叫,若是预设建构函式可以不写,预设会呼叫成员物件的预设建构函式

当然了啊

怎样让建构函式里的资料成员只执行一次

建构函式是一种特殊的方法主要用来在建立物件时初始化物件即为物件成员变数赋初始值,总与new运算子一起使用在建立物件的语句中特别的一个类可以有多个建构函式可根据其引数个数的不同或引数型别的不同来区分它们即建构函式的过载。建构函式与其他方法的区别:1.建构函式的命名必须和类名完全相同;而一般方法则不能和类名相同。2.建构函式的功能主要用于在类的物件建立时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。3.建构函式不能被直接呼叫,必须通过new运算子在建立物件时才会自动呼叫,一般方法在程式执行到它的时候被呼叫。4.当定义一个类定义的时候,通常情况下都会显示该类的建构函式,并在函式中指定初始化的工作也可省略不去c#编译器会提供一个预设的建构函式.此预设建构函式是不带引数的.而一般方法不存在这一特点。

判断题:可以在类的建构函式中对静态资料成员进行初始化。 A、错误 B、正确如题 谢谢了

A、错误
记得采纳啊

在c++中为何需要建构函式,只为初始化物件吗,想不明白!

当然不只是为了初始化物件~~~~
还可能需要记录一些其他资讯,因为在我们新建一个类的物件的时候,如果不指定用那个建构函式,那么系统就会呼叫预设建构函式
我们利用这一点,可以做许多对我们有用的事情
比如,在类里面宣告一个静态变数,然后用这个静态变数统计一个程式中相应类的物件有多少个
上面只是一个小例子,用来说明建构函式其实用途很多~~
其实程式语言就是这样的~~~~他们把框架给了我们,告诉我们每样工具是做什么用的,怎么用~~具体思想性的东西还是需要我们自己动手编写的。这也就是为什么演算法比程式语言本身更重要的原因,那么在类的世界里面,设计模式也是必不可少的东西。
希望你能理解我打这么多的用意~~~亲~给个好评吧~

相关参考

知识大全 Visual C++ 2005中混合代码的初始化

VisualC++2005中混合代码的初始化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在V

玉米机械化收获必须要科学

玉米机械化收获是一项很重要的工作,是玉米生产的关键技术环节,是玉米丰产丰收的重要保证。因此,玉米机械化收获必须要科学。一、玉米收获时期玉米要适时收获,使茎秆中残留的养分输送到籽粒中,充分发挥后熟作用,

玉米机械化收获必须要科学

玉米机械化收获是一项很重要的工作,是玉米生产的关键技术环节,是玉米丰产丰收的重要保证。因此,玉米机械化收获必须要科学。一、玉米收获时期玉米要适时收获,使茎秆中残留的养分输送到籽粒中,充分发挥后熟作用,

知识大全 ASP新手必须要知道的基础知识

ASP新手必须要知道的基础知识  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们都知道ASP是

知识大全 请问EXCEL中使用vlookup函式时,引用第二个表格的资料时候,函式引数对话方块不跟随,这是为什么

请问EXCEL中使用vlookup函式时,引用第二个表格的资料时候,函式引数对话方块不跟随,这是为什么?请高手忙  以下文字资料是由(全榜网网www.cha138.com

白癜风的治疗常识必须要了解

1、在白癜风的治疗过程中,患者必须要坚持长时间的药物治疗,不应受工作学习等因素影响而忘记服药或涂药,这只会使得疾病的治疗效果减慢,甚至造成不良影响。2、要积极配合医生进行治疗,同时务必要有战胜疾病的信

白癜风的治疗常识必须要了解

1、在白癜风的治疗过程中,患者必须要坚持长时间的药物治疗,不应受工作学习等因素影响而忘记服药或涂药,这只会使得疾病的治疗效果减慢,甚至造成不良影响。2、要积极配合医生进行治疗,同时务必要有战胜疾病的信

知识大全 CA认证是不是每个企业都必须要做

CA认证是不是每个企业都必须要做  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!CA认证是不是每个企业

牛皮癣患者生活必须要注意的事项

提到牛皮癣,我们相信大家都不会陌生了,因为牛皮癣是发病率非常高的皮肤科疾病,相信大家在日常生活中都能够或多或少的看到牛皮癣患者,牛皮癣患者除了要积极配合医生治疗以外在日常生活中要注意:(1)居住条件要

牛皮癣患者生活必须要注意的事项

提到牛皮癣,我们相信大家都不会陌生了,因为牛皮癣是发病率非常高的皮肤科疾病,相信大家在日常生活中都能够或多或少的看到牛皮癣患者,牛皮癣患者除了要积极配合医生治疗以外在日常生活中要注意:(1)居住条件要