成員變量初始化有三種方式:
在構造函數體內賦值初始化
在自定義的公有函數體中賦值初始化(一般用于成員變量的初始化)
在構造函數的成員初始化列表初始化
一、構造函數體內初始化
說明:在構造函數體內的初始化方式,本質是是為成員變量賦值,而不是真正意義上的初始化,這點要特別注意!(下面介紹成員初始化列表時會有演示案例對比說明)
class Cperson
{
private:
int m_age;
float m_height;
char* m_name;
public:
Cperson(int age,float height,const char* name)
{
m_age=age;
m_height=height;
if(m_name)//先判斷當前是否為空
delete[] m_name;
if(name)//如果外部傳入的不為空
{
int len=strlen(name);
m_name=new char[len+1];//創建內存
strcpy(t m_name,name);
}
else
m_name=nullptr;
}
}
二、自定義的公有函數體中賦值初始化
說明:與構造函數體內初始化方式一樣,此種方式本質上也是賦值,而不是初始化
class Cperson
{
private:
int m_age;
float m_height;
char* m_name;
public:
void setPerson(