小沈的C++学习10——类
变量:单个对象,单一类型值
数组:多个对象,单一类型值
结构:多个对象,多个类型值
类:多个对象,多个类型值,再加上函数,组成新的数据类型
类的声明:
关键字class+类的名字+{成员函数或数据成员的说明};//记得最后要有“;”
<各个函数的实现>//建议将函数的实现放在类的声明的外面
class saving { public: unsigned deposit(...){...}; private: unsigned AccountNumber; float balance; };1-类的声明
外部不能访问protected和private值
成员函数的调用:
类名+::+函数名
unsigned saving::deposit(...){...};2——实现
saving s;
s.deposit;
saving* sp;
sp->deposit;
数据成员的调用的方法:
s.
sp->
构造函数与析构函数
在创建一个类的时候,实际上会执行一个默认的构造函数——类名(){}
在销毁一个类的时候,也会执行一个磨人的析构函数——类名(){}
我们可以自己设置构造函数:
//public saving(){cout<<"constructed normally"<也可以设置含参构造函数
//public saving(float data) balance:data { cout<<"constructed with balance = "<endl; }上述两种函数可以同时存在
初始化也可以用如下语法
析构函数同上,只是要在函数前添加“~”运算符
继承:程序员可以声明一个新类作为另一个类的派生
一个基类可以派生多个子类,一个子类也可以由多个基类派生
语法示例:
class B:public A{};public表示公有继承,基类的private、public、protected都保持原有的状态
还有私有继承和保护继承,表示基类的public变为private/protected,私有继承中原来的protected也会变为private
派生类的构造
#include构造函数的继承using namespace std; class A{ private: int a; public: A(){a=0;cout<<"a=0"<<endl;} A(int i){a=i;cout<<"a="<endl;} ~A(){cout<endl;} void show(){cout<<"a="<endl;} }; class B:public A { public: B():A(){} B(int i):A(i){} }; int main() { B b; b.show(); B bb(2); bb.show(); } 运行结果:
a=0
a=0
a=2
a=2
2
0