默认构造函数是没有参数的,CExample();
你下面那个图是带参数的构造函数,析构函数在对象所在的函数执行完了,自动调用的
#include
using namespace std;
class CExample
{
private:
int a;
public:
CExample() //a1执行的是默认构造函数,输出5
{
a = 5;
}
~CExample()
{
cout << "析构函数被调用" << endl;
}
CExample (int b) //a2执行带参数的构造函数,输出3
{
a = b;
}
void show()
{
cout << a << endl;
}
};
int main()
{
CExample a1;
CExample a2(3);
a1.show(); //调用一次析构函数
a2.show(); //调用一次析构函数
return 0;
}
在类里面, 而没有函数体的那个是声明.
你就没有发现在类外面定义的构造函数前面多了个CExample:: 啊?
::就是限定::后面的标识符是::前面的内部成员.
所有类的成员函数都可以在类中声明, 在类外定义