还是那句话,我们继续在简单的代码中,体会学习C++,本节主要是体会学习类的进阶知识.
一.构造函数与析构函数
当创建一个对象时,往往需要做一些初始化工作,例如对数据成员赋值等。为了解决这个问题,C++提供了构造函数。
构造函数(Constructor)是一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户调用(用户也不能调用),而是在创建对象时自动执行。构造函数的作用是在创建对象时进行初始化工作,最常见的就是对成员变量赋值。
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作(例如回收创建对象时消耗的各种资源),这个函数被称为析构函数。
析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要用户调用,而是在销毁对象时自动执行。与构造函数不同的是,析构函数的名字是在类名前面加一个”~“符号。
#include <iostream>
using namespace std;
class Student
{
public:
//构造函数,用参数初始化列表初始化
Student(string name1, int age1, float score1):name(name1), age(age1), score(score1){}
//析构函数
~Student();
//普通成员函数
void say();
private:
string name;
int age;
float score;
};
Student::~Student()
{
cout<<name<<"再见"<<endl;
}
void Student::say()
{
cout<<name<<"的年龄是 "<<age<<",成绩是 "<<score<<endl;
}
int main()
{
Student stu1("小明", 15, 90.5f);
stu1.say();
Student stu2("李磊", 16, 95);
stu2.say();
Student stu3("王爽", 16, 80.5f);
stu3.say();
cout<<"main 函数即将运行结束"<<endl;
return 0;
}
本文出自 “LinuxQt济南高新区” 博客,请务必保留此出处http://qtlinux.blog.51cto.com/3052744/1695830
原文:http://qtlinux.blog.51cto.com/3052744/1695830