【C解析之十三】对象的定义

C解析之十三对象的定义


      前言:【C解析之十一】类-集万千宠爱于一身中认识了一个特殊的数据类型”-类,对象是类的实例是生成对象的”模板“,类本质上是抽象的概念,系统并不会为类分配存储空间。对象是类-”特殊的数据类型“的物理实体,具有存储空间。
           类与对象的关系,是数据类型和变量的关系
           1.对象的定义
  • 定义类的同时定义对象:方法为在类定义的右花括号直接写出对象名列表。
class book
{
    private:
        int price;  //价格属性
        int pages;  //页数属性
    public:
        void ShowPrice()
        {                          //显示书价格操作
            printf("The price of this book is %d",price);
        }
        void ShowPages()
        {                          //显示书页数操作
            prinft("The pages fo this book is %d",pages);
        }
}mybook,yourbook;   //在这里定义同时创建mybook,yourbook对象
  • 使用类名定义对象:定义格式同一般变量定义格式相同。
class book             //先定义book类
{
    private:
        int price;  //价格属性
        int pages;  //页数属性
    public:
        void ShowPrice()
        {                          //显示书价格操作
            printf("The price of this book is %d",price);
        }
        void ShowPages()
        {                          //显示书页数操作
            prinft("The pages fo this book is %d",pages);
        }
}; 

book mybook;           //再利用book类定义mybook对象
book yourbook;         //再利用book类定义yourbook对象
           
           2.对象的存储空间
            对象有成员数据与成员函数,如book有成员数据:int price;    int pages;
                                                 成员函数:void ShowPrice();void ShowPages();
            对象的存储空间如何分配呢?首先,不同的对象数据不同,故每个对象都应该有自己独立的数据空间;其次,同类对象的成员函数都是相同的,为了高效率,函数只需存储一份,所有的对象可以共享函数空间
            3.对象的访问
  • 通过对象访问:对象名.数据成员   对象名.函数成员
        如: book.price;
                 book.ShowPrice();
  • 通过指针访问:指针->数据成员  指针->函数成员
        如: p->price;
                 p->ShowPrice();
            4.对象小测试
#include
    
    
     
     
class book             
{
    public:
        int price;  //价格属性
        int pages;  //页数属性
    public:
        void ShowPrice()
        {                          //显示书价格操作
            printf("The price of this book is %d \n",price);
        }
        void ShowPages()
        {                          //显示书页数操作
            printf("The pages fo this book is %d \n",pages);
        }
};

int main(){
	book mybook;
	mybook.pages=838;   //C++ Primer第5版页数
	mybook.price=128;   //C++ Primer第5版价格
	printf("Size of mybook is :%d \n",sizeof(mybook));  //mybook存储空间大小
	mybook.ShowPages();
	mybook.ShowPrice();
	return 0;
}

    
    
            这个小示例演示了从定义类,到定义对象,使用对象的全过程。运行结果来看,需要提出的是,mybook的sizeof值为8,正好是price与pages的大小之和,印证了对象有自己独立的数据空间,共享函数空间的存储策略。

                                                                    
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值