有如下一个简单的复数类:
class
ClxComplex
{
public :
ClxComplex( double dReal = 0.0 , double dImage = 0.0 ) { m_dReal = dReal; dImage = dImage; }
double GetReal() const { return m_dReal; }
double GetImage() const { return m_dImage; }
private :
double m_dReal;
double m_dImage;
};
{
public :
ClxComplex( double dReal = 0.0 , double dImage = 0.0 ) { m_dReal = dReal; dImage = dImage; }
double GetReal() const { return m_dReal; }
double GetImage() const { return m_dImage; }
private :
double m_dReal;
double m_dImage;
};
我们知道,下面的3行代码是等价的:

本文探讨了C++中的显式构造函数及其作用。通过示例展示了如何利用explicit关键字防止不必要的隐式类型转换,以消除潜在的错误和代码歧义。显式构造函数可以避免如将数值误转换为复杂数或字符串对象,以及防止意外的字符ASCII值初始化等问题。

193

被折叠的 条评论
为什么被折叠?



