构造函数和析构函数

/*
      构造函数:
           特点:1.无返回值
                      2.通常情况下是pubilc属性
                      3.调用不需要自己调用,构建对象的时候调用
                      4.函数名和类名一样
           分为:
             1.默认构造函数
             2.普通构造函数
             3.拷贝构造函数
       
       析构函数:
               特点:1.无参
                          2.无返回值
                          3.函数名:  ~类名() {}
                          4.对象死亡的时候被调用
       
*/
#include<iostream>
#include<string>
#include<cstring>
using  namespace  std;

class  girlFriend
{
pubilc:
     girlFriend(string  name,int  age)
     {
            this->name = name;
            this->age = age;
     }
     void  print(); 
     /*
            也可以如此代替: 避免使用this指针
            girlFriend(string  name,int  age) : name(name),age(age)
            {
                     cout << "name:" << name << "age:"  << age << endl; 
             }
     */
     
     //函数重载
     girlFriend();
      
     //特殊的构造函数
     //什么时候析构函数需要手动释放
     //当数据成员申请内存的时候
     ~girlFriend()
     {
         
         cout << "自己写的析构函数" << endl;  //int main中的大括号内的函数操作完后,就会调用析构函数 
     }
protected:
     string  name;
     int  age;
};

void   girlFriend::print()
{
     cout << "name:"  << name << "age:" << age << endl;
}

class  myString
{
public:
     myString(char *str)
     {
         char *str = new char[strlen(str) + 1];
         strcpy(this->str,str);
     }
     void  print()
     {
         cout << str << endl; 
     }
protected:
     char*str;
};

int  main()
{
     {
     	grilFriend  yourGirl("小仙女",18);  //一个对象
     	yourGril.print();
     
     	//括号代表一种初始化
     	girlFriend *ppGirl = new  girlFriend("小可爱",17);//一个对象
      
     	//函数重载
     	girlFriend  Array[3];//三个对象
     	 
     	delete ppGirl;//一个对象
     }  //大括号内的函数执行完后,执行六次(因为有六个对象)析构函数 ,new出来的对象必须手动释放,才能死亡
     system("pause");
     return  0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值