------->大类 ~~ 大对象 --->最终章
各位好友,本期正式开启 大类 ~~ 大对象 --->最后一个模板 ---->内部类 与匿名对象
下面进入开战环节 :>
1. 内部类
---->概念:>如果一个类定义在另一个类的内部, 这个内部就是内部类。内部类是一个独立的类,不属于外部类, 更不能通过外部类的对象去访问内部类的成员, 外部类对内部类没有任何优越的访问权限 !
---->注意:>内部类就是外部类的友元类 !内部类可以通过外部类的对象参数来进行访问外部类中所有任何成员。但是外部类不是内部类的友元 !
---->特性:>
(1)内部类可以定义在外部类中 public private protect
(2)内部类可以直接访问外部类中的 static 成员, 不需要外部类的对象 / 类名;
(3)sizeof(外部类) == 外部类, 与内部类没有任何关系。
----->验证一:>
----->验证二:>
--->计算内部类大小
#include <iostream>
using std::cout;
using std::endl;
// 情形一
class A
{
public:
class B
{
public:
void Func()
{
}
private:
int b;
}
private:
static int m;
int n = 21
};
int A::m = 24;
int main()
{
cout << sizeof(A) << endl;
A aa1 // 此处仅仅为了整体上好看一些
return 0;
}
#include <iostream>
using std::cout;
using std::endl;
//情形二
class A
{
public:
class B
{
public:
void Func(const A& a)
{
cout << m << endl;
cout << a.n << endl;
}
private:
int b;
};
private:
static int m;
int n;
};
int A::m = 24;
int main()
{
cout << sizeof(A) << endl;
A aa1;
A::B bb1;
return 0;
}
为了方便好友们, 获得更好地观感体验 与更好地理解 !现 附上有彩色的代码图样, 如下 :>
----->情节一:>
---->无参数接收:>
如果,内部类 在类中 自定义变量, 此时 --->需要进行计算其大小 !如下所示 :>
----->情节二 :>
---->有参数接收:>
如果,内部类 在类中 有自定义变量, 此时 --->需要进行计算其大小 !如下所示 :>
2. 匿名对象
------>生命周期只在当前行
--->主体 :>
---->测试环节_01 :>
---->如下,修订版本:>
----->前奏:>
---->添加 const 效果图示:>
---->测试环节_02 :>
---->完整版:>
各位好友, 请注意:> 代码模块 ---->颜色分类搭配 !如此,可方便梳理上述流程 --->着 调试过程
好友们, 至此 ,本章节 --->大类 ~~ 大对象 已全部完成 !六大默认成员函数, 其中前四个是重中之重 !
现 已进入~~尾声 !不过, 还是想给好友们, 扩展一些额外的知识点 !
------>编译器优化:>
----->着 拷贝对象:>
---->实现环节:>
#include <iostream>
using std::cout;
using std::endl;
class A
{
public:
// 构造函数
A(int a)
:_a(a)
{
cout << "A(int a)" << endl;
}
// 拷贝构造函数
A(const A& aa)
{
cout << "A(const A& aa)" << endl;
}
// 赋值重载运算函数
A% operator=(const A& aa)
{
cout << "A& operator=(const A& aa)" << endl;
if(this != &aa)
{
return *this;
} // 避免使用解引用, 这样会相当麻烦 ! 使用取地址, 简单易懂 !!
_a == aa._a;
}
// 析构函数
~A()
{
cout << "~A()" << endl;
}
private:
int _a;
};
void Func1(A aa)
{
}
A func2()
{
A aa;
return aa;
}
----->彩色代码模块,观感比较舒服 :>
(1)测试 一 :>
(2)测试 二 :>
----->前奏:>
----->正式版:>
各位好友, 至此, 本章节 --->大类 ~~ 大对象 ----->已 告一段落 !历时整整十六天的奋战 !既有辛苦, 也有收获 !真正理解 与掌握 --->类 与对象, 才算是正式迈进了 C++殿堂 !这座宝殿充满着无数数不尽的财富, 正等待着 --->我们 --->这些追寻者,探索者去寻找,去挖掘 !终究,是能在这座殿堂 --->收获一个幸福美满的人生 !
毕竟, 人活着, 不就是追求幸福人生,找寻自己存在的意义吗 !