C++构造函数怎么使用

C++构造函数怎么使用

这篇文章主要讲解了“C++构造函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++构造函数怎么使用”吧!

像是结构体,我们可以使用列表初始化的方法进行初始化:

C++构造函数怎么使用

structThing{char*pn;intm;};Thingth={"hello",23};

但类不行,因为结构体当中的成员变量都是public的,而类往往是私有的。这意味着我们不能直接用程序访问数据成员,需要设计成函数。

在C++当中,这种用来构造类的函数,被称为类构造函数。构造函数的原型和函数头有一个比较明显的特征——它虽然没有返回值,但没有被声明称void类型,实际上构造函数没有声明类型。

比如我们还是之前的类:

classStock{private:std::stringcompany;longshares;doubleshare_val;doubletotal_val;voidset_tot(){total_val=shares*share_val;}public:voidaccquire(conststd::string&co,longn,doublepr);voidbuy(longnum,doubleprice);voidsell(longnum,doubleprice);voidupdate(doubleprice);voidshow();};#endif

现在我们要加入构造函数,首先是在类中加上声明:

classStock{...Stock(conststring&co,longn=0,doublepr=0.0);}

注意看,我们实现定义的时候,函数是没有返回类型的:

Stock::Stock(conststring&co,longn,doublepr){company=co;if(n<0){std::cerr<<"Numberofsharescan'tbenegative;"<<company<<"sharessetto0.\n";shares=0;}else{shares=n;share_val=pr;set_tot();}}

注意,构造函数中的参数名不能和类成员名一致,否则会引起错误:

Stock::Stock(conststring&company,longshares,doubleshare_val){}

如果一致的话,就会出现这样的代码:

shares=shares;

为了避免这种混乱,一般会在代码风格层面加以区分。比如在谷歌代码规范当中,类中的private成员变量中需要使用后缀_。

最后,我们来看下构造函数的使用。C++当中支持两种方式,

我们先来看第一种,显式地调用:

Stockfood=Stock("word",250,2.5);

另外一种方式是隐式地调用:

Stockgarment("furry",50,2.5);

这种方式更加紧凑,我们每次使用new动态分配内存时,也会使用类构造函数。

Stock*pstock=newStock("ele",18,19.0);

构造函数的使用不同于一般的类方法,我们无法使用对象来调用构造函数。

感谢各位的阅读,以上就是“C++构造函数怎么使用”的内容了,经过本文的学习后,相信大家对C++构造函数怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2022-01-05 23:35:35
收藏
分享
海报
0 条评论
60
上一篇:Python如何实现随机采样及概率分布 下一篇:什么返利网返利最多(最出名的十大返利网)
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码