摘要:
1、类成员函数的初始化: (1)按照声明顺序初始化,而不是按出现在初始化列表中的顺序; 2、区别: (1)全局函数的参数个数,比局部函数要多一个; (2)二者都可,返回元素、返回引用。 阅读全文
摘要:
常量:对于既需要共享、又需要防止改变的数据。在程序运行期间不可改变。 const 修饰的是对象中的 this 指针。所以不能被修改。 this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。 1、常对象 数据成员值在对象的整个生存期内不能改变。在定义时必须初始化,而且不能被更新。 常对象 阅读全文
摘要:
1、静态成员变量 类的静态成员变量是,由该类的所以对象共同维护和使用的数据成员,每个类只有一个副本,是类数据成员的一种特例。采用 static 关键字声明。 目的:实现同一类中不同对象之间的数据共享。不包含 this 指针,因为是属于整个类的。 初始化必须在类外进行,类内声明,类外初始化。可以通过类 阅读全文
摘要:
1、如何区分多个对象调用同一个类函数? 类外部访问类成员,必须用对象来调用。一个类的所有对象在调用的成员函数,都执行同一段代码,那成员函数如何区分属于哪个对象呢? 在对象调用成员函数时,除接收实参外,还接受一个对象的地址。也就是隐含参数:this 指针(编译器自动实现). this 指针指出,成员函 阅读全文
摘要:
1、基本用法,定义变量、数组、对象 2、new 、delete与c的malloc、free的区别 (1)malloc、free,在定义对象时,只会分配内存大小,不会调用类的构造、析构函数; (2)new 、delete,不止会分配内存,也会调用构造、析构函数,初始化对象。 阅读全文
摘要:
1、解决的问题: 在 B 类中,组合了一个 A 类对象,其中A类设计了构造函数。由于构造函数的调用规则,设计了构造函数就必须调用,但在定义B类时没有机会初始化A,因此采用构造函数的初始化列表来解决。 2、构造和析构调用顺序 先执行被组合对象的构造函数,如果组合对象有多个,则按照定义顺序,而不是按照初 阅读全文
摘要:
1、复制构造函数、及new空间申请 复制构造函数,也是构造函数。只在初始化时调用,如果定义对象后赋值,比如,t1=t2,则只是运算符重载,没有调用构造函数。 注意: (1)复制构造函数是函数的形参是类的对象的引用的构造函数; (2)用一个已经存在的对象,初始化一个新的同类对象; (3)系统会自动生成 阅读全文
摘要:
1、构造函数 (1)每个类都要定义它自己的构造函数和析构函数,是类的成员函数。 特点:名称与类名相同;没有返回值;一定是共有函数,可以直接访问类内所有成员函数;可以带默认形参,可以重载; (2)注意: (1)类中没有定义任何构造函数时,才使用默认构造函数,只要定义了,就不会存在默认构造函数; (2) 阅读全文
摘要:
1、类的封装、实现、对象的定义及使用 (1)类是一组对象的抽象化模型。类对象将数据及函数操作集合在一个实体中,只需要接口,而不需要知道具体的操作。 隐藏细节,模型化; 类内自由修改; 减少耦合,相当于一个轮子; (2)类的实现 类的函数,原型声明要在类的主体中,而函数的具体实现一般卸载类声明之外。如 阅读全文
摘要:
一、C语言中,为什么字符串可以赋值给字符指针变量? char *p; a='5'; p=&a; //显然是正确的, p="abcd"; //但为什么也可以这样赋值?? 问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点! 答:双引号做了3件事: 1.申请了空间(在常量区),存放了字符 阅读全文