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


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

    (二)构造函数的命名必须和类名完全相同
    (三)更对具体的查看:构造函数
    (四)直接分析程序
    运行结果


    解析上面程序:
    1. 当程序运行到四点时候,就会自动调用第一点无参构造函数,打印Person()
    2. 当运行到第5点时候,就会调用第2点有参构造函数,并初始化相关参数,打印Person(char *,int)
    3. per2.printInfo();打印初始化了的参数
    4. 当程序运行结束之后,会调用析构函数,调用两次,因为per1和per2各一次
     
    注意:构造函数可以有很多个,但是析构函数只能有一个
     1 #include <iostream>
     2 #include <string.h>
     3 using namespace std;
     4 class Person{
     5 private:
     6     char *name;
     7     int age;
     8 public:
     9 
    10     Person(){                            /*构造函数*/
    11         this->name = NULL;
    12         this->age  = NULL;
    13         cout<<"Person()"<<endl;
    14     }    
    15     Person(char *name,int age){          /*构造函数*/
    16         cout<<"Person(char *,int)"<<endl;
    17         this->name = new char[strlen(name) + 1];
    18         strcpy(this->name,name);
    19         this->age = age;
    20 
    21     }
    22     ~Person(){
    23         cout<<"~Person()"<<endl;
    24         delete [] name;
    25             }          /*析构函数,当子程序运行结束时候系统自动调用*/
    26     void printInfo(void);
    27 };
    28 void Person::printInfo(void)
    29 {
    30     cout<<"name = "<<name<<"age = "<<age<<endl;
    31 }
    32 int main(int argc,char ** argv)
    33 {
    34     Person per1;                /*调用构造函数,打印无参时候的Person()*/
    35     Person per2("zhangsan",10);/*调用构造函数,打印Person(char *,int)*/
    36     per2.printInfo();
    37     return 0;
    38 }
    mian.cpp

     

  • 相关阅读:
    scoket --- 练习
    网络编程---scoket使用,七层协议,三次挥手建连接,四次挥手断连接
    类的总复习
    面向对象 --- 类的绑定方法,面向对象高阶
    组合,访问限制机制,抽象类 --- 练习
    面向对象 --- 类的组合,封装,多态
    类的继承 --- 练习
    面向对象 --- 类的继承
    基于面向对象设计一个游戏
    请求头类型content-type
  • 原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690186.html
Copyright © 2020-2023  润新知