前言:本部分内容是讲解一些零碎的知识,包括但不限于静态变量、this指针,等相关知识。难度适中,建议按照下面内容所提供的例子进行自己手动的编写,更有利于掌握这些知识。其中有关this指针的内容需要重点掌握,因为在面向对象编程中,this指针是最常用到的知识之一。
目录
1、初始化列表
作用:C++提供了初始化列表语法,用来初始化属性
语法:构造函数():属性1(值1),属性2(值2) ... { }
class Person
{
public:
//传统初始化操作
Person(int a, int b, int c)
{
m_A = a;
m_B = b;
m_C = c;
}
//初始化列表
Person():m_A(10), m_B(20), m_C(30)
{
}
private:
int m_A;
int m_B;
int m_C;
};
2、类对象作为类成员
C++类中的成员可以是另一个·类中的成员,我们称该成员为:对象成员
class Phone
{
public:
Phone(string name)
{
m_PhoneName = name;
cout << "Phone 构造 " << endl;
}
~Phone()
{
cout << "Phone 析构 " << endl;
}
string m_PhoneName;
};
class Person
{
public:
//初始化列表可以告诉编译器调用哪一个构造函数
Person(string name, string pName): m_Name(name), m_Phone(pName)
{
cout << "Person 构造 " << endl;
}
~Perosn()
{
cout << "Person 析构 " << endl;
}
void playGame()
{
cout << m_Name << "使用:" << m_Phone << m_Phone.m_PhoneName << "牌手机 " << endl;
}
string m_Name;
Phone m_Phone;
};
void test01()
{
//构造函数的调用顺序为:先调用对象成员的构造,再调用本类构造
//析构顺序与构造相反
Person p("张三", "三星");
p.playGame;
}
3、静态成员
静态成员就是在成员变量或成员函数前加上关键字:static,成为静态成员
静态成员分为:
··静态成员变量:
1、所有对象共享一份数据
2、在编译阶段分配内存(在运行之前)
3、类内声明,类外初始化
··静态成员函数
1、所有对象共享一份函数
2、静态成员函数只能访问静态成员变量
//静态成员变量
class Person
{
public:
static int m_A; //静态成员变量 类内声明
private:
static int m_B; //静态成员变量也是有访问权限的
};
int Person::m_A = 0; //类外初始化
&