构造函数2.0-创新互联
为了解决对象初始化问题,于是,就提出了构造函数这么一个策略。构造函数有什么特点呢?一,函数名与类名相同。二,构造函数没有返回值。有如下代码:
专注于为中小企业提供成都网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业江夏免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。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;
}
运行代码如下:
除此之外,还有一种手工调用构造函数的方式:
Chair chair = Chair ( 4 );
其实这种手工调用构造函数的方式,也可以说是初始化类对象的另外一种方式。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:构造函数2.0-创新互联
文章URL:http://hbruida.cn/article/dipjdg.html