C++ 构造函数简介

 用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载 构造函数 - 构造函数与其他方法的区别

1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.

2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.

3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.

4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点 5当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。 构造函数 - C++中的构造函数

C++的构造函数定义格式为:

 构造函数 class <类名>

{

public: <类名>(参数表) //...(还可以声明其它成员函数) };

 <类名>::<类名>(参数表) { //函数体 } 如以下定义是合法的:

class T { public: T(int a=0){i=a;}//构造函数允许直接写在类定义内,也允许有参数表。

 private:int i; }; 当程序中没有析构函数时,系统会自动生成以下构造函数: <类名>::<类名>(){},即不执行任何操作。 构造函数 - C++例子 //注意若将本代码直接复制进编译器,可能会报错,原因是网页生成时会在代码前加一个中文占位符 //最好将代码再写一次

#include

using namespace std;

class time {

public: time() //constructor.构造函数 { hour=0; minute=0; sec=0;

}

void set_time();

 void show_time();

 private:

      int hour;

     int minute;

      int sec; };

int main()

{

class time t1;

t1.show_time();

 t1.set_time();

 t1.show_time();

 return 0; }

void time::set_time() { cin >>hour; cin >>minute; cin >>sec; }

void time::show_time() { cout<}

程序运行情况: 0:0:0 10 11 11 回车 10:11:11 任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。

构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。

 

posted @ 2011-12-28 19:21  流浪在阿尔卑斯的野狼  阅读(267)  评论(0编辑  收藏  举报