网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

构造函数2.0

为了解决对象初始化问题,于是,就提出了构造函数这么一个策略。构造函数有什么特点呢?一,函数名与类名相同。二,构造函数没有返回值。有如下代码:

创新互联是一家专注于成都网站设计、网站制作和成都温江机房的网络公司,有着丰富的建站经验和案例。

class Chair{
private:
    int legs;
public:
    void Setlegs ( int leg ){
        this->legs = leg;
    }
    int Getlegs ( void ){
        return this->legs;
    }
    Chair ( int leg ){
        this->legs = leg;
    }
};

int main ( int argc, char** argv ){
        Chair chair;             //编译器会调用默认构造函数Chair();
        Chair chair1 ( 4 );   //调用构造函数Chair( int leg );
        Chair chair2 = 4;    //调用构造函数Chair ( int leg );

    system ( "pause" );
    return 0;
}

这段代码,在类对象被创建后,那么,编译器会为该对象分配相应的空间大小并调用构造函数。需要注意的是,类对象的声明并不会为对象分配空间,只是告诉编译器有这么一个对象存在。
构造函数可以被编译器自动调用,那构造函数可以手工调用吗?当然可以。比如,我们创建一个类数组,然后,我们对这个数组进行进行初始化。代码如下:

#include 
#include 

class Chair{

private:
    int legs;
public:
    int Getlegs ( void ){

        return this->legs;
    }
    void Setlegs ( int leg ){

        this->legs = leg;
    }
    Chair ( int leg ){

        this->legs = leg;
    }
    Chair ( void ){

        this->legs = 3;
    }

};

int main ( int argc, char** argv ){

    Chair chair[3] = { Chair ( 4 ), Chair ( 8 ), Chair() };
    int i;

    for ( i = 0; i < 3; ++i ){

        printf ( "%d\n", chair[i].Getlegs() );
    }

    system ( "pause" );
    return 0;
}

运行代码如下:
构造函数2.0
除此之外,还有一种手工调用构造函数的方式:

Chair chair = Chair ( 4 );

其实这种手工调用构造函数的方式,也可以说是初始化类对象的另外一种方式。


网页标题:构造函数2.0
网页URL:http://bjjierui.cn/article/ppepes.html

其他资讯