
高山倡导者为您分享以下优质知识
以下是关于构造函数的记忆表格,结合了面向对象编程中的核心特性和使用场景:
构造函数特性 | 说明 | 示例 |
---|---|---|
名称与类名相同 | 构造函数必须与所在类同名 | class Person{ Person(){...} } |
无返回值类型 | 不声明返回值(包括void) | Date(int year){...} |
自动调用 | 对象实例化时由编译器自动调用 | Date d1(2025);(触发构造函数) |
支持重载 | 一个类可以有多个构造函数,参数列表不同 | Stack()和Stack(int n) |
初始化方式 | 可通过函数体赋值或初始化列表(更高效) | Date(): _year(0), _month(1){} |
默认构造函数 | 未定义时编译器自动生成;若自定义构造函数,默认无参构造可能被覆盖 | class A{}; A a;(调用默认构造) |
全缺省构造函数 | 参数带默认值,可合并无参和有参构造 | Date(int y=0, int m=1){...} |
继承中的调用顺序 | 子类构造先调用父类构造(构内到外) | class B:A{ B(){...} } → 先执行A() |
与普通函数的区别 | 构造在对象创建时执行且仅一次;普通函数需手动调用,可多次执行 | p.eat()(普通方法) vs Person p;(自动调构造) |
名称一致:构造函数名 = 类名。
无返回值:不写void或int等。
自动触发:new对象时自动执行。
重载灵活:支持多版本初始化(如无参、有参)。
初始化列表优先:比函数体内赋值更高效。
如果需要更具体的语言(如C++、Java、PHP)示例或深入某个特性,可以进一步补充说明!