//c++中的构造函数(六种):此处列举常见的四种构造函数
#include<iostream.h>
class Test
{
private:
int value;
public:
//1缺省的构造函数:创建对象
Test(int x=0):value(x) //以参数列表的形式初始化所建立的对象
{
cout<<"Creat Test:"<<this<<endl;
}
//2拷贝构造函数:用一个对象创建另一个对象
Test(const Test &it):value(it.value)
{
cout<<"Copy Creat Test"<<this<<endl;
}
//3赋值函数
Test & operator=(const Test &it) //&前面有类型(Test)所以it为引用
{
if(this != &it) //此处&前面没类型所以为取地址符
{
value=it.value;
}
cout<<this<<" = "<<&it<<endl;
return *this;
}
//4析构函数
~Test()
{
cout<<"Destory Test:"<<this<<endl;
}
int Getvalue() const {return value;}
}; //!!!!注意此处";"不可省略:否则出现bug
Test fun(Test tp)
{
int x=tp.Getvalue();
Test tmp(x);
return tmp;
}
void main()
{
Test t1(10);
Test t2=fun(t1);//创建对象有实参必带括号
// Test t2; //无实参必不带括号
// t2=fun(t1);
// Test func(); //函数定义在主函数后面,不能直接调用,先声明(即此为函数声明)
//这种声明在c语言中随处可见(c++继承这种特性)
// Test t3();
//这种形式看做函数声明
cout<<"Main End" <<endl;
}
Test func()
{
Test tp(10);
return tp;
}
构造函数及有关函数的调用过程
最新推荐文章于 2023-01-25 14:51:17 发布