C++ 构造过程

构造函数

C++中每个类必须有一个构造函数,如果用户没有自行编写构造函数,则C++会自动提供一个无参数的构造函数,如果用户编写了构造函数,则默认的构造函数会自动消失

C++中的构造函数应该是一个公有的成员函数,并且构造函数没有返回类型;

若对构造函数进行重载,更改了默认的参数的个数,则按照排序原则,自定义的参数排在默认的参数后面,比如说

Class A中的默认的构造函数是A(int a=10,int b=10,int c=10);

若对默认构造函数进行重载,A(int d),则类的前两个成员变量还是等于10,第三个成员被初始化为d了。具体代码实现请参看构造函数重载

初始化

假想类A 中的数据成员含有类B,对类A初始化时类B是调用默认的构造函数,如何在类A初始化的同时也让B按照用户自定义的方式初始化?

这里就要搬来构造函数的调用表,该调用表可以省略类型声明,但却行创建对象之值。

class StudentID{

int value;

}

public:

StudentID(int id=0){

value=id;

}

};

class Student{

string name;

StudentID id;

public:
Student( string name="no name",int ssID=0):id(ssID){

...

};

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,460评论 1 10
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 12,303评论 0 10
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 7,987评论 0 3
  • 吾去汝,何不携,但以子之泪;向汝反去。我欲径行,能复遇汝乎?又或,遇一形之君可伏其肩,以涕还汝。
    臻臻臻臻臻臻阅读 1,183评论 0 0
  • 今天是今年的最后一天。想想总要给自己做个交代,不回顾一下都不知道今年什么都没干! 一晃一年就过去了。还是跟以前一样...
    三小虫阅读 1,852评论 0 0