#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 ;
}
运行结果: