1.c++的内联函数相当于c的宏函数(#define),消除函数调用时的时间和空间消耗,频繁被调用的小函数适合写成内联函数,内联函数被调用时即把函数体展开。
inline int max(int a, int b)
{
return a > b ? a : b;
}
等价于 :
#define max(a, b) a > b ? a : b
2.面向对象的特征:封装、继承和多态。封装隐藏实现细节,使代码模块化;继承可扩展已经存在的代码块;二者都是有利于代码的重用;多态则是为了实现接口的重用。
3.构造函数:与类名相同,主要是用于初始化成员变量,构造函数没有返回值,允许重载。
4.拷贝构造函数:只有一个参数,参数为当前类的对象的引用,用已有的对象初始化新的对象。标准的拷贝构造函数Student(const Student & s)
例如:
class Student
{
private:
int sNum;
char sName[20];
float sGrade;
public:
Student(){}
Student(int sNum)
{
this.sNum = sNum;
}
Student(int sNum,char sName[], float sGrade)
{
this.sNum = sNum;
strcpy(this.sName,sName);
this.sGrade = sGrade;
}
//拷贝构造函数
Student(Student &stu){}
}
int main()
{
Student s;
Student s1(1000);
Student ss(1500,“abs”, 100);
Student * pStu1 = new Student;
Student* pStu2 = new Student(2000);
Student s2 = s1; //栈内拷贝构造
Student s3(s1); //栈内拷贝构造,和s2本质相同
Student * pStu3 = new Student(s1) //堆内拷贝构造
return 0;
}
5.析构函数:无返回值,无参数,不能重载。~Student()
(1)后构造的对象先析构
(2)栈内的析构发生在函数调用结束(对象生命周期结束)
(3)堆内的析构发生在delete之后