继承的优点:减少代码的冗余 提高代码的重用性 派生类定义格式: Class 派生类名 : 继承方式 基类名{ //派生类新增的数据成员和成员函数 }; class 子类: 继承方式 父类名{ //子类新增的数据成员和成员函数 }; 继承方式分类: public : 公有继承 (重要) private ...
分类:
编程语言 时间:
2020-03-24 22:56:54
阅读次数:
63
题目: 设计一个类Rect,要求有下列成员函数。 1) move();从一个位置移动到另一个位置 2) size(); 改变矩形大小 3) where(); 返回矩形左上角的坐标值 4) area(); 计算面积 Atention: where()成员函数返回矩形左上角的坐标,也就是两个参数,利用引 ...
分类:
其他好文 时间:
2020-03-21 13:06:00
阅读次数:
64
C++中存在一种朋友关系,这种朋友关系如果体现在函数上,那么我们就称之为友元函数;如果体现在类上,我们就称之为友元类。 1.友元函数 友元函数是指某些虽然不是类成员函数却能够访问类的所有成员的函数。类授予它的友元特别的访问权,这样该友元函数就能访问到类中的所有成员。 1 #include <iost ...
分类:
编程语言 时间:
2020-03-20 23:54:31
阅读次数:
143
用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如下图所示。 能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用 ...
分类:
编程语言 时间:
2020-03-19 09:30:31
阅读次数:
71
通常情况下把算术和关系运算符定义成非成员函数以允许对左侧或右侧运算对象进行转换。 因为这些运算符一般不需要改变运算对象的状态,所以形参都是常量引用。 算术运算符通常会计算它的两个运算对象并得到一个新值,这个值有别于任意一个运算对象,常常位于一个局部变量之内,操作完成后返回该局部变量的副本作为其结果。 ...
分类:
其他好文 时间:
2020-03-15 11:33:24
阅读次数:
95
下标运算符 下标运算符必须是类的成员函数。 下标运算符通常返回访问元素的引用,从而使得下标可以出现在赋值运算符的任意一侧,进一步,最后同时定义下标运算符的常量和非常量版本,当作用于一个常量对象时,下标运算符返回常量的引用以确保不会给返回的对象赋值。 递增和递减运算符 并不要求递增和递减运算符一定是类 ...
分类:
其他好文 时间:
2020-03-15 11:29:08
阅读次数:
56
赋值运算符 除了拷贝赋值和移动赋值,类还可以定义其他赋值运算符以使用别的类型作为右侧运算对象。 赋值运算符必须定义为成员函数。 复合赋值运算符 复合赋值运算符不必一定是类的成员函数,但是最好把包含复合赋值在内的所有赋值运算都定义在类的内部,为了与内置类型的复合赋值保持一致,类中的复合赋值运算符也要返 ...
分类:
其他好文 时间:
2020-03-15 11:19:24
阅读次数:
45
this是一个const指针,存的是当前对象的地址,指向当前对象,通过this指针可以访问类中的所有成员。 1)每个对象都有this指针,通过this来访问自己的地址。 2)每个成员函数都有一个指针形参(构造函数没有这个形参),名字固定,称为this指针,this是隐式的。 3)编译器在编译时会自动 ...
分类:
其他好文 时间:
2020-03-14 22:11:38
阅读次数:
53
const成员函数:不能更改类成员变量的值或者调用任何非const成员函数 (任何不修改成员数据的函数都应该声明为const成员函数,提高程序的可靠性和可读性) ...
分类:
其他好文 时间:
2020-03-14 11:02:50
阅读次数:
31
#include<iostream> using namespace std; class Base { public: Base() { m_A = 100; } void func() { cout << "Base func()调用" << endl; } void func(int a) { ...
分类:
编程语言 时间:
2020-03-13 20:24:48
阅读次数:
67