挑战30天C 入门极限:c 面向对象的编程入门篇--类构造函数与析构函数

文章作者 100test 发表时间 2007:03:10 17:13:40
来源 100Test.Com百考试题网


请注意,这一节内容是c 的重点,要特别注意!


我们先说一下什么是构造函数?

上一个教程我们简单说了关于类的一些基本内容,对于类对象成员的初始化我们始终是建立成员函数然后手工调用该函数对成员进行赋值的,那么在c 中对于类来说有没有更方便的方式能够在对象创建的时候就自动初始化成员变量呢,这一点对操作保护成员是至关重要的,答案是肯定的关于c 类成员的初始化,有专门的构造函数来进行自动操作而无需要手工调用,在正式讲解之前先看看c 对构造函数的一个基本定义。

1.C 规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。

2.若没有提供任何构造函数,那么c 提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。

3.只要类中提供了任意一个构造函数,那么c 就不在自动提供默认构造函数。

4.类对象的定义和变量的定义类似,使用默认构造函数创建对象的时候,如果创建的是静态或者是全局对象,则对象的位模式全部为0,否则将会是随即的。



我们来看下面的代码:


//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者

#include <iostream>
using namespace std.
class Student
{
public:
Student()//无参数构造函数
{
number = 1.
score = 100.
}
void show().

protected:
int number.
int score.

}.

void Student::show()
{
cout<}

void main()
{
Student a.
a.show().
cin.get().
}



在类中的定义的和类名相同,并且没有任何返回类型的Student()就是构造函数,这是一个无参数的构造函数,他在对象创建的时候自动调用,如果去掉Student()函数体内的代码那么它和c 的默认提供的构造函数等价的。



相关文章


挑战30天C 入门极限:C 类的分解,抽象类与纯虚函数的需要性
考纲分析:全国计算机等级考试二级C语言程序设计辅导
链表的C语言实现之单链表的实现
挑战30天C 入门极限:C 友元的入门教程
挑战30天C 入门极限:c 面向对象的编程入门篇--类构造函数与析构函数
链表的C语言实现之单链表的查找运算
链表的C语言实现之单链表的插入运算
挑战30天C 入门极限:C 面向对象编程入门:类(class)
挑战30天C 入门极限:C_C 中结构体(struct)知识点强化
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛