摘要:
在类的定义中,前面有virtual关键字的成员函数就是虚函数。多态是通过虚函数来实现的。 Class base{ Virtual int get(); }; Int base::get() { } Virtual 关键字只用在类定义里的函数声明中,写函数体时不用。 构造函数和静态成员函数不能是虚函数 阅读全文
摘要:
派生类对象包含基类对象 执行派生类构造函数之前,先执行基类的构造函数 派生类交代基类初始化,具体形式: 构造函数名(形参表):基类名(基类构造函数实参表) { } 析构函数先调用派生类的构造函数,再调用基类的析构函数。 创建派生类的对象时,执行派生类的构造函数之前: 调用基类的构造函数 初始化派生类 阅读全文
摘要:
继承:定义新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类)。 派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数。 派生类一经定义后,可以独立使用,不依赖于基类。 派生类拥有基类的 阅读全文
摘要:
前置运算符重载为一元运算符,后置运算符重载为二元运算符。 Operator int() { return n; } int作为一个强制类型转换运算符被重载, Demo s; (int)s; //等效于s.int(); 强制类型转换运算符重载时, 不能写返回值类型 实际上其返回值类型 强制类型转换运算 阅读全文
摘要:
cout是在iostream中定义的,是ostream类的对象。cin是istream类的对象。测试代码如下: 参考链接: https://www.coursera.org/learn/cpp-chengxu-sheji 阅读全文
摘要:
程序代码如下,主要结合了运算符重载的特点进行数组类的设计。实现了数组的插入,复制等功能,通过这个程序对vector容器有了一定的了解。 阅读全文
摘要:
1.返回非引用类型。 函数运行结束时,会释放掉临时变量,但临时变量的空间即地址和空间的值不会被释放掉。因此不能返回临时变量的指针和引用。指针应该是和其所指向的对象同时存在的,不能让其成为悬垂指针,这样可能导致程序崩溃。 函数的返回值用于初始化在调用函数处所创建的临时对象。临时对象的初始化方法和实参初 阅读全文
摘要:
赋值运算符两边的类型可以不匹配,需要重载赋值运算符‘=’。赋值运算符只能重载为成员函数。 重载赋值运算符的意义 浅复制和深复制 S1=S2; 浅复制/浅拷贝 执行逐个字节的复制工作 深复制/深拷贝 将一个对象中指针变量指向的内容复制到另一个对象中指针成员对象指向的地方。 对operator=返回值类 阅读全文