007_linuxC++之_构造函数的初级应用

(一)构造函数:用来在创建对象时初始化对象, 即为对象成员变量赋初始值

(二)构造函数的命名必须和类名完全相同
(三)更对具体的查看:构造函数
(四)直接分析程序
在这里插入图片描述
在这里插入图片描述
解析上面程序:

  1. 当程序运行到四点时候,就会自动调用第一点无参构造函数,打印Person()
  2. 当运行到第5点时候,就会调用第2点有参构造函数,并初始化相关参数,打印Person(char *,int)
  3. per2.printInfo();打印初始化了的参数
  4. 当程序运行结束之后,会调用析构函数,调用两次,因为per1和per2各一次

注意:构造函数可以有很多个,但是析构函数只能有一个

#include <iostream>
#include <string.h>
using namespace std;
class Person{
private:
    char *name;
    int age;
public:

    Person(){                            /*构造函数*/
        this->name = NULL;
        this->age  = NULL;
        cout<<"Person()"<<endl;
    }    
    Person(char *name,int age){          /*构造函数*/
        cout<<"Person(char *,int)"<<endl;
        this->name = new char[strlen(name) + 1];
        strcpy(this->name,name);
        this->age = age;

    }
    ~Person(){
        cout<<"~Person()"<<endl;
        delete [] name;
            }          /*析构函数,当子程序运行结束时候系统自动调用*/
    void printInfo(void);
};
void Person::printInfo(void)
{
    cout<<"name = "<<name<<"age = "<<age<<endl;
}
int main(int argc,char ** argv)
{
    Person per1;                /*调用构造函数,打印无参时候的Person()*/
    Person per2("zhangsan",10);/*调用构造函数,打印Person(char *,int)*/
    per2.printInfo();
    return 0;
}

mian.cpp

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值