内部类概念:
如果一个类定义在另一个类的内部,那么这个类就叫做内部类,内部类是一个独立的类,它不属于外部类,更不能通过外部的类去访问内部的类
内部类就是外部类的友元类,内部类可以通过外部类的对象参数来访问外部类的所有成员,但是外部类不可以访问内部类
通俗来说就是:
例面可以访问外面,但是外面不可以访问里面
特性:
1.内部类可以定义在外部类的public,protected.private任何地方私不私有都是可以的
2.内部类可以直接访问外部类的static成员,当然不是static也是可以的,不需要外部类的对象或者类名
3.sizeof(外部类) = 外部类,和内部类没有任何关系
内部本质也是一种封装,A类是是外部类B是内部类的情况下,A类实现本身是给B使用的,可以考虑A类设计为B的内部类,如果放在private或者protect那A就是B的专属类
匿名对象:
这例面插入一个sort排序
int a[8] = { 1,27,35,51,9,66,8 };
greater< int >gt;
sort(a, a + 8, gt);
for (int i = 0; i < 8; i++)
{
printf("%d ", a[i]);
}
return 0;
}
这样的话,就是降序了
我们的匿名对象我们个一大家去举一个例子
Solution st;
cout << st.sum_Solution(11)<<endl;
cout << Solution().sum_Solution(0)<< endl;
这个里面我们就可以去用匿名的对象没这样就可以不用去写名字,这样会发方便很多,
但是这的匿名对象的声明周期只有一行