C++编程语言中的初始化在实际编程中应用频繁,并且作用比较大。我们在这里主要为大家讲解了C++初始化和赋值之间的区别。可以让大家从中对这两种功能应用有一个详细的了解,方便将来的应用。
东河网站建设公司创新互联建站,东河网站设计制作,有大型网站制作公司丰富经验。已为东河上1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的东河做网站的公司定做!
对于基本数据类型差别不大:
比如:
- int a = 12; // initialization, copy 0X000C to a
- a = 12; // assignment, copy 0X000C to a
但是对用户自定义的数据类型比如String 的C++初始化和赋值就差别很大:
- class String {
- public:
- String( const char *init ); // intentionally not explicit!
- ~String();
- String( const String &that );
- String &operator =( const String &that );
- String &operator =( const char *str );
- void swap( String &that );
- friend const String // concatenate
- operator +( const String &, const String & );
- friend bool operator <( const String &, const String & );
- //...
- private:
- String( const char *, const char * ); // computational
- char *s_;
- };
初始化的构造过程比较简单:先分配一个足够大的空间然后填充上数据:
- String::String( const char *init ) {
- if( !init ) init = "";
- s_ = new char[ strlen(init)+1 ];
- strcpy( s_, init );
- }
析构过程更简单:
- String::~String() { delete [] s_; }
但是如果赋值操作就复杂多了:
- String &String::operator =( const char *str ) {
- if( !str ) str = "";
- char *tmp = strcpy( new char[ strlen(str)+1 ], str );
- delete [] s_;
- s_ = tmp;
- return *this;
- }
以上就是对C++初始化和赋值之间区别的介绍。
网站题目:C++初始化和赋值区别解析
分享地址:http://www.shufengxianlan.com/qtweb/news5/159305.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联