C++-note5

-类继承
-string类

静态类成员
在类声明中,可以声明static成员。

1
2
3
4
5
6
7
8
9
class a{
...
private:
static int num; //在声明类后,该成员是静态的(假如创建了10个a对象
//它们的num成员值相同)
...
public:
...
}

静态类成员有一个特点:无论创建了多少对象,程序都只创建一个静态类变量副本。也就是说,类的所有对象都共享同一个静态成员。


类继承
类继承能够从已有的类派生出新的类,而派生类继承了原有类(基类)的特征,包括方法。
1.可以在已有类的基础上添加功能。
2.可以给类添加数据。
3.可以修改类方法的行为。

1
2
3
class rateplayer:public Table{
...
}

冒号指出rateplayer的基类是Table。public说明Table是一个公有基类,这成为公有派生。使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。

派生类特征
1.派生类对象存储了基类的额数据成员(派生类继承了基类的实现);
2.派生类对象可以使用基类的方法;
3.派生类对象需要自己的构造函数;
4.派生类可以根据需要添加额外的数据成员和成员函数。


string类
使用string需要带头文件string.h

1
2
3
4
string(size_type n,char c); //创建一个包含n个元素的string对象,每个元素都初始化为字符c
string(const string &str); //将一个string对象初始化为string对象str
string(const char *s); //将string对象初始化为字符串s
string(const char *s,size_type n); //将string对象初始化为字符串s的前n个字符

1
2
3
string one("Jerome"); //将one初始化为jerome
one+="James"; //通过重载的+=将James加在对象one后面
one[2]='p'; //通过[]可以使用数组表示法来访问string对象中的各个字符

string输入
对于string对象,有两种方式

1
2
3
string stuff;
cin>>stuff; //read a word;
getline(cin,stuff); //read a line,without a '\n'

string的getline()将自动调整string对象的大小,使之刚好能够存储输入的字符
string对象的size()和length()成员函数都返回字符串中的字符数


Thanks for your reward!