C++语言之构造函数

时间:2022-06-04 12:39:56
#include <iostream>

using namespace std ;

class Cat
{
public:
char name[20];
void Say_Name(void);
//构造函数名字必须跟类名一样
//无返回值,但是可以传参
//调用 不能被调,只能自己运行
//在该类分配空间时自动运行
//支持默认参数,并且可以重载

Cat(const char *name = "kitty");
Cat(int a , int b ) ;
};

Cat ab("ab") ;

int main(void)
{
cout << "before cc " << endl ;
//构造函数传参
class Cat cc("cc") ; //可以用class xxxx abc ; xxxx abc ;
Cat aa("aa") ;
cout << "after cc " << endl ;
Cat ac(10 , 20);

//*******************************
Cat * p = NULL ;

//在分配空间时自动调用
p = new Cat("p") ;


delete p ;
return 0 ;
}

void Cat::Say_Name(void)
{
cout << "name : " << this->name << endl ;
}

Cat::Cat(const char *name)
{
cout << "this is in Constructor" << endl ;

strcpy(this->name , name );

Say_Name();
}

Cat::Cat(int a , int b)
{
cout << "a : " << a << " b: " << b << endl ;
}

运行结果:

C++语言之构造函数