前言
在讲构造函数之前,我们先介绍什么是类,类的作用和类的定义
什么是类
类是一种复杂的数据结构,它是将各种不同的数据类型和数据的相关操作封装在一起的集合体。类的基本思想是数据抽象和封装。而类包含数据成员和成员函数
例如:当你定义一个人的类,一个人有他的名字(name),性别(sex),年龄(age),身高(height)等等,而这些名字,性别,年龄,身高就是类的数据成员,当然一个人还应该会吃饭(eat),会走路(move),会玩游戏(play)等等,这些就可以看成类的成员函数。这个类接下来会给出定义
类的定义
在C++中类由class
关键字定义
class 类名
{
// 相关数据成员和成员函数
}; // 记住分号不要漏了
例如刚刚人的类
class Person
{
// 数据成员
string name;
string sex;
int age;
double height;
// 成员函数
void eat();
void move();
void play();
// .......
}
写到这里有些人可能会想,每个人都是有隐私的,像女生,她们一般不会透露自己的年龄,个人信息就会变得很重要,这时就希望某些数据成员不被外界直接访问得到,年龄这个数据成员就被加了限制,所以我们要用到封装
类的访问限制和封装
在C++中,我们使用访问限制符来加强类的封装性。访问限定符包含三个:public
, private
, protected
public: 公有的
private: 私有的
protected: 受保护的
当人的类加了访问限定符后
class Person
{
public: //显示出来的
void eat();
void move();
void play();
private: // 隐藏起来的
string name;
string sex;
int age;
double height;
}
内联函数
普通函数和内敛函数的区别
普通函数
内联函数
内联函数:避免了函数调用的额外开销
例如声明print为内联函数
inline string print(const string &s1, const string &s2)
{
return (s1.size() < s2.,size() ? s1 : s2)
}
当执行
cout << print(s1, s2) << endl;
在编译的过程中会展开成
cout << (s1.size() < s2.size() ? s1 : s2) << endl;
当然内联函数一般来说是比较容易的函数,如果函数有60多行代码,那么直接展开会变的很麻烦