呵呵,一般C++的书上都会介绍的基础知识。
构造函数有这么几种:我以类名为A的类来说说吧
1. 默认构造函数,新建A的对象时默认调用(如果没有其他符合的构造函数的话)
2. 拷贝构造函数,用A的一个对象来对另一个A类对象进行初始化
4. 赋值函数,用于A对象间的赋值操作
5. 其他构造函数,自己定义。
以上1~3的3个构造函数是每个C++类默认内置的,即使你不声明也会存在的。
下面举个例子
class A{
public:
A(){} // 默认构造函数,什么都不做
A(int i) {m_i=i;} // 自定义构造函数,用int型变量i来初始化A类对象成员m_i
A(A& a) {m_i=a.m_i;} // 拷贝构造函数,一般不需要特别重载,功能是将形参对象的内部成员全部拷贝到新对象中。
A& operator=(const A& a); // 赋值函数,其实不算是构造函数,只是运算符重载而已。用形参对象来对当前对象进行赋值
A& operator=(const int i); // 另一个重载的赋值函数,用i来对A类对象赋值
~A(){}
public:
int m_i;
};
A& A::operator=(const A& a)
{
this.m_i=a.m_i;
return *this;
}
A& A::operator=(const int i)
{
this.m_i=i;
return *this;
}
下面是应用的例子
A a; // 调用默认构造函数
a.m_i=100; // 外部对a的成员进行赋值
A b(a); // 调用拷贝构造函数,用a对象来对b对象初始化,此时b对象的m_i也变成了100
A c;
c=b; // 调用赋值函数,用对象b来对c进行赋值。默认的赋值函数功能类似与拷贝构造函数
c=200; // 调用自定义赋值函数,用200来对c对象的m_i进行赋值
A d(150); // 调用了自定义的构造函数,用150对d对象的m_i进行赋值
以上是本人临时乱写的代码,水平有限,不当之处请各位大侠批评指正。
还是要恶补一下基本知识