C++之类class和对象

对象

对象只包含成员变量,不包含成员函数。所以对象所占内存空间的大小等于所有成员变量大小之和。每个对象都有自己的存储空间,相互不影响。通过类定义出来的变量就叫对象。
注意:
所有的对象都会被初始化。

使用类的成员变量和成员函数的方法

(1)对象名.成员名
(2)指针->成员名
(3)引用名.成员名

类成员访问范围

成员变量和成员函数统称为类的成员。
在类的定义中,可以通过以下访问范围关键字来说明类成员可被访问的范围:

private:私有成员,只能在成员函数内访问。
public:共有成员,可以在任何地方访问。
protected:保护成员。

如下所示:

class className
{
   
    private:
        私有属性和函数
    public:
        公有属性和函数
    protected:
        保护属性和函数
}//必须有分号

注意:
访问范围的关键字可被写多次,且没有先后顺序。如果某个成员前面没有上述关键字,则缺省的被认为是私有成员。
设置私有成员的机制叫“隐藏”。隐藏的作用:
“隐藏”的目的是强制对成员变量的访问一定要通过成员函数进行,那么以后成员变量的类型等属性修改后,只需要更改成员函数即可。否则,所有直接访问成员变量的语句都需要修改。

成员函数的重载与参数缺省

成员函数也可以重载,也可以带缺省参数。使用缺省参数要注意避免有函数重载时的二义性,比如到底是无参还是缺省。类的成员函数和类的定义一般分开写。如下:

class CRectangle
{
   
    public:
        int w,h;
        int Area();        // 成员函数仅在此处声明
        int Perimeter();
        void Init(int w_,int h_);
}
int CRectangle::Area() {
   
    return w*h;
}
int CRectangle::Area() {
   
    return 2*(w+h);
}
void CRectangle:: Init(int w_,int h_) {
   
   w= w_;  h=h_;
}

CRectangle::说明后面的函数是CRectangle类的成员函数,而非普通函数。那么一定要通过对象或对象的指针或对象的引用才能调用。

构造函数(constructor)

定义

构造函数是成员函数的一种,名字与类名相同,可以有参数,不能有返回值(void也不行),可以重载,所以可以有多个构造函数,参数个数或是类型不同。

作用

作用是对对象进行初始化,如给成员变量赋初值,并不是分配存储空间,而是存储空间已经有了,做初始化工作。构造函数执行必要的初始化工作,有了构造函数,就不必专门再写初始化函数,也不用担心忘记调用初始化函数。有时对象没有被初始化就使用,会导致程序出错。
补充:

如果定义类时没有写构造函数,则编译器生成一个默认的无参数的构造函数。
默认构造函数无参数,不做任何操作。
如果定义了构造函数,则编译器不生成默认的无参数的构造函数。
对象生成时构造函数自动被调用。对象一旦生成,就再也不能在上执行构造函数。

举例

class Complex {
   
    private:
        double real,imag;
    public:
        Complex(double r,double i = 0);
}
Complex::Complex(double r,double i) {
   
    real=r;imag = i;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值