码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-09-22 15:58:54      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:ace   album   target   程序   str   创建   space   targe   url   

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

(二)构造函数的命名必须和类名完全相同
(三)更对具体的查看:构造函数
(四)直接分析程序
技术分享图片

技术分享图片
运行结果
技术分享图片

解析上面程序:
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

 

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

标签:ace   album   target   程序   str   创建   space   targe   url   

原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!