小沈的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

cpp