(1)访问级别
对于代码:
class complex
{
public:
complex (double r = 0, double i = 0)
: re (r) , im (i)
{ }
complex& operator += (const complex&);
double real () const { return re; }
double image () const { return im; }
private:
double re, im ;
friend complex&___doap1 {complex*, const complex& };
};
public中的参数可以认为是全局的,可以在其他任意地方被调用,但是prIvate 则是局部的,只能在类内部被访问。
例如如下:
{
complex c1 (2 ,1 );
cout << c1.re;
cout << c1.im;
}
是无法输出实部与虚部的,这是因为re和im都是在private中的变量,在class外无法被访问。
如果想实现输出实部和虚部,则可以使用如下代码:
{
complex c1 ( 2 , 1 );
cout << c1.real () ;
cout << c1.imag () ;
}
总结:函数如果是要全局调用的,就应该放在public中,如果只是想在内部小范围调用,则可以将其定义在private中。
2. 构造函数
定义:构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。