struct & class
C++ 允许我们定义自己的类型。
比如说那个高精度算数,可以使用类来实现。
(在之后,为了方便讲解,我把这两个关键字用SC代替。有些时候,struct与class是等价的。到时候,请读者根据自己的代码习惯,自行替换)
转入正题。
如何申请一个类??
SC scname{
code;
};
注意一定要有分号!!!
在类里面,我们可以定义自己的变量,函数与运算符。
还可以决定哪些元素能被外界调用。
一般地,我们把变量设定为私有的或受保护的(即外界不可以调用的),把运算符设为公有的(即外界可以调用的)
所以,一个类实际上可以这样写:
SC scname{ private://私有的 code; public://公有的 code; protected://受保护的 code; };
此外,我们还可以定义类的构造函数,析构函数。
构造函数:在SC类型的变量生成时会自动运行的函数,主要是来初始化变量的。
析构函数:在函数结束时,此变量需要销毁——以将占用的内存释放,还给系统再次利用,就会运行这个函数。
另外,构造函数可以加上参数,也可以不加参数。而析构函数不能有参数。
所以,加上构造函数与析构函数的类:
SC scname{ private://私有的 code; public://公有的 SC(){do_sth;}//普通构造函数 ~SC(){do_sth;}//析构函数 code; protected://受保护的 code; };
我们还可以定义一些运算符:
这些运算符的定义就意味着这个类型的变量可以支持许多内置类型支持的运算。
如何定义这些运算符呢?
C++提供了一个关键字operator。
我们可以这样定义一个运算符:
return_type operator operator_name(parameter) { do_sth; return sth; }
前提是至少要在类的定义里声明这个函数。
我们如何调用一个类里面的函数或变量?
额……
这个函数或变量需要是public的。
e.g. expr.function()
e.g. expr.member