摘要:
1) 类与类之间的关系 has-A:包含关系,用以描述一个类由多个部件类构成,实现has-A关系用类的成员属性表示,即一个类的成员属性是另一个已经定义好的类;(成员对象)组合关系。 use-A:一个类使用另一个类,通过类之间的成员函数相互联系,定义友元或者通过传递参数的方式来实现; is-A:继承关 阅读全文
摘要:
友元 在一个类A中,将类B声明为友元类,则类B可以访问类A的私有成员和保护成员。另外,也可以将函数声明为友元函数。 什么时候用到友元 若不同的类之间某些共享数据成员,可以使用友元,简化类的设计。 友元类友元类的声明:friend class 类名示例如下: 对于电视和遥控器来说,都共享频道数据成员和 阅读全文
摘要:
区别 1)静态内存分配是在编译期完成的,不占用CPU资源;动态内存分配是在运行时完成的,分配和释放需要占用CPU资源; 2)静态内存分配是在栈上分配的;动态内存分配是在堆上分配的; 3)静态内存分配不需要指针或引用类型的支持;动态内存分配需要; 4)静态内存分配在编译前确定内存块的大小;动态内存分配 阅读全文
摘要:
默认构造函数 默认构造函数是可以不用实参进行调用的构造函数 默认构造函数调用时机 如果定义一个对象时没有提供初始化时,就使用默认构造函数。例如: class A { public: A(bool _isTrue= true, int _num=10){ isTrue = isTrue; num = 阅读全文
摘要:
空类 1) C++空类的大小不为0,不同编译器设置不一样,vs设置为1; 2) C++标准指出,不允许一个对象(当然包括类对象)的大小为 0,不同的对象不能具有相同的地址; 3) 带有虚函数的C++类大小不为1,因为每一个对象会有一个vptr指向虚函数表,具体大小根据指针大小确定; 4) C++中要 阅读全文
摘要:
三大基本特征:封装、继承、多态 封装:将客观事物抽象成类,每个类对自身的数据和方法实行访问控制(private , protected ,public )。 封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的 阅读全文