类与对象()

什么是类

在c语言中的结构体可以将不同类型的数据封装在一起,在c++中,不仅可以将不同类型的数据封装在一起还可以将函数放进结构体,我们称这样的结构体为类。

定义一个类

声明一个类可以使用 classstruct

class的默认访问权限为私有,struct的默认访问权限为公有

 class A{
 public:
 void fun(){
 cout<<"hello"<<endl;  //成员函数
 }
 private:
 int a;     //成员变量
};  //必须以;结尾


定义类的两种方法:
  • 声明和定义都放在类中
 class A{
 public:
 void fun(){    //在类中定义的方法默认为inline
 cout<<"hello"<<endl;  
 }
 private:
 int a;     
};  

  • 在类中声明,在类外定义
 class A{
 public:
 void fun();
 private:
 int a;     
};  

void A::fun()   //在类外定义的函数必须加域解析符修饰,表明属于哪一个类
{
cout<<"hello"<endl;
}
访问限定修饰符

一个类将数据和方法封装后,提供接口给对象使用。这些接口一般都是有访问权限的。
一个类中提供三种访问限定修饰符:public(共有) private(私有)protected(受保护)

在类中每个限定符的作用范围为从一个限
定符开始到另一个限定符开始

  • public 可以访问 public private protected
  • protected 可以访问 protected private
  • private 可以访问private

访问权限的范围是在不断缩小的

  • public 成员可以在类外直接访问
  • private 和 protected 不能在类外直接访问

访问限定符是在编译时起作用,等到映射到内存后便不再起作用

类的作用域:

类所定义的数据于方法都只能在类的作用域之内,如果在类外需要使用::修饰,来表明其类域 ,与之前在类外定义对象相同;

  • 成员变量在类中具有全局属性
  • 应避免函数参数名与变量名同名
类的大小:一个类的大小为其变量的大小,计算内存大小是应遵循结构体的内存对齐规则;

一个空类的而大小为一个字节;

this指针

在类中存在一个隐藏的this指针,指向当前对象内存的第一个字节

  • this指针的类型为 类类型const
  • this 指针必须在成员函数内部使用 指向当前对象,但不属于当前对象
    this指针是成员函数隐藏的第一个参数,不用用户传递,属于自动传递
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值