构造函数
构造函数,是当你定义一个类对象的时候,可以直接对其数据成员进行初始化,而不需要调用其成员函数进行赋值。
构造函数的函数名和类名相同,但是没有返回值
#ifndef __STUDENT_H__
#define __STUDENT_H__
class STUDENT
{
private:
int nID;
int nAge;
const char *pName;
public:
STUDENT(int ID, int Age, const char *pStr);
char * GetName(void);
int GetID(void);
void SetID(int ID);
void SetName(const char *pStr);
};
#endif
#include "Student.h"
STUDENT::STUDENT(int ID, int Age, const char *pStr)
{
nID = ID;
nAge = Age;
pName = pStr;
}
char * STUDENT::GetName(void)
{
return (char *)pName;
}
int STUDENT::GetID(void)
{
return nID;
}
void STUDENT::SetID(int ID)
{
nID = ID;
}
void STUDENT::SetName(const char *pStr)
{
pName = pStr;
}
每次创建类对象,甚至是动态内存分配,C++都要使用构造函数
class STUDENT * stu1 = new class STUDENT(2020,18,"SS");
当你没有给这个类提供构造函数的时候,编译器会默认提供一个默认构造函数,他并不作任何工作。
但是只要你提供了构造函数,那么编译器将不再提供默认构造函数,所以每次定义类对象的时候 必须调用构造函数。
所以程序员必须写一个默认构造函数
①是给构造函数提供一个默认值
STUDENT::STUDENT(int ID = 1, int Age = 1, const char *pStr = NULL)
②利用函数重载来定义另外一个无參的构造函数
STUDENT::STUDENT();