类和对象

第八章 类和对象


类是对象的抽象(不占内存),对象是类的具体实例(占存储空间)

默认私有


struct声明的类若不做声明,全是public,class则相反。


成员函数可以访问本类中的任何成员。不占用对象的存储空间(this指针)。


类声明 和函数定义 一般是分别放在两个文件中的。


第九章 关于类和对象的进一步讨论


构造函数没有返回值,在定义是无需声明类型,不需要调用,在声明对象时自动运行。也可以不定义构造函数。


重载构造函数。。  无参构造函数定义对象时 为 box a;不要写成 box a() 切记。


应该在声明构造函数时指定默认值,而不是在定义构造函数是指定默认值。一个类只能有一个默认构造函数,也不能再定义重载构造函数。避免歧义。如 Time();Time(int 1,int 2,int 3)   则 Time t1;有歧义。


一个类可以有多个构造函数 ,但只能有一个析构函数。

先构造的后析构,后构造的先析构(相当于栈)。


对象数组定义初始化:Student Stud[3] = {Student(1,9,9),Student(2,9,9),Student(3,9,9)};


指向对象成员的指针与普通指针定义一样,但指向对象成员函数的指针与普通不一样。。 void(Time::*p1)(); p1=&Time::get_time;(t1.*p3)();


如果一个对象被定义为常对象,则不能调用该对象的非const型的成员函数。可以将函数声明为const再调用。void get_time()const; 可变的数据成员声明  mutable int count;


数据成员 非const成员函数 const成员函数
   非const的数据成员 可以引用,也可以修改 可以引用但不可以修改
   const数据成员 可以引用但不可以修改 可以引用但不可以修改
   const对象的数据成员  不允许引用和改变值 可以引用但不可以修改




对象的赋值 s1=s2 s1,s2为同一类
对象的复制 Student stu2(stu1);将stu1复制到stu2.也可以用 Student stu2=stu1;


非静态数据成员函数有this指针,而静态成员函数没有this指针、主要访问静态数据成员。


































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值