类与对象

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

定义一个类

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

定义类的两种方法:

(1)声明和定义都放在类中

class A{
 public:
 void fun(){    //在类中定义的方法默认为inline(内联函数)
 cout<<"hello"<<endl;  
 }
 private:
 int a;     
};  

(2)在类中声明,在类外定义

 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指针是成员函数隐藏的第一个参数,不用用户传递,属于自动传递

对象
它是类所定义的对象;
1、 对象的声明:
类名 对象名;
例如: Clock myclock; //定义了一个时钟类的对象myclock;
注:对象所占空间大小,是由类中所有成员变量所占空间大小决定的;
2、访问对象的成员:
访问数据成员的一般形式:
对象名. 数据成员名
调用函数成员的一般形式:
对象名.函数成员名(参数表)
3、类的成员函数:描述的是类的行为;
函数原型声明要写在类内,函数的具体实现一般写在类定义之外;
具体形式:
返回值类型 类名 ::函数成员名(参数列表)
{
函数体
}
注:若函数有默认值,一般写在函数声明中;
例如:

class Clock
{
public:
void settime(int h=0,int m=0,int s=0);
void show time();
private:
int hour;
int minute ;
int second;
};
void Clock::settime(int h,int m,int s)
{
hour=h;
minute=m;
second=s;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值