【基础篇】构造函数

几种基本的构造方法:

Bank a={1,2};//使用c的语言特性
Bank a(1,2);//写构造函数
Bank a;//默认构造函数

如何编写构造函数?首先,参数的缺省是随意的,根据实际问题的需求来。其次,一般都需要缺省的构造函数,防止申请动态空间时出错。
一般说来,可以直接正常编写,也可以使用c中的成员向量表之类的语法,没有什么困难的。
值得一提的是,构造函数会出现隐式地将特定的数据类型转换成对象的错误,这是十分隐蔽的,例如下面的这个例子:

// 在某个头文件中
extern void print( const Account &acct );
// ...
int main()
{
// 把 "oops" 转换成一个 Account 对象
// 用 Account::Account( "oops", 0.0 )
print( "oops" );
// ...
}

解决这类问题的方法就是使用explicit关键字,告诉编译器不进行隐式的转换。

posted on 2020-02-18 16:30  mellors  阅读(130)  评论(0)    收藏  举报

导航