C++——类和对象(概念、this指针)

一.类和对象

1.含义:(小编自己的理解)类是某些集合的特征的抽象。对象是类的实体。

比如:世界上有很多人,但是“人”这个词是一开始就存在的吗。并不是,我们把“人”叫做“人”,那么老外可能就会叫做“person”或者“people”。那么我们就可以说“人”就是一种抽象,就是类;而我们每一个人就相当于是“人”这个类的一个个实体。 

2.class的定义

(1)类的内容有哪些?

类内成员都有什么呢?

①数据成员

②成员函数

如:

class A{
public:
//成员函数
    void print(){
        cout<<"hehe!!!"<<endl;    
    }
private:
//数据成员
    int a;
}

看到这里,哦我们会发现class其实与struct很相似

C++中的struct可以这样用:

struct A {
	void print() {
		cout << "hehe!!!" << endl;
	}
	int a;
};

小编的话来说,class与struct一模不一样

看下面两段代码:

结构体变量操作结构体内的成员易如反掌;但是,类的对象访问类内的成员时,出现了不可访问的错误。

引入权限的概念。

权限:

public:类外部的对象可以访问

private:类外部的对象不能访问

protectd:类外部的对象不能访问

二.类的两种定义方式

1.成员函数在类内部定义

class A {
public:
	void print() {
		cout << "inner" << endl;
	}
	int a;
};

2.成员函数在类外部定义

class B {
public:
	void print();
	int a;
};

void B::print() {
	cout << "out" << endl;
}

在类外定义类的成员函数时:

格式:

返回值类型 类名::函数名

三.类的大小

计算原则:只计算数据成员的大小,不包含成员函数,数据成员大小遵循结构体的内存对齐原则。

注意:

①空类的大小:1B

②非空类但是又成员函数的类的大小:1B

四.this指针

先看一段代码:

不同的对象调用类的函数时,调用了同一个类的函数。但是类中的成员函数是不存储在类中的。

原因:thiis指针的存在:

不同的对象调用同一个类的函数时,参数隐含为该对象的地址

这是以上代码的等价写法:

class A {
public:
	void print() {
		cout << this->year << endl;
	}
	int year;
};

int main() {

	A a1;
	A a2;
	a1.year = 2017;
	a2.year = 2018;
	a1.print(&a1);
	a2.print(&a2);
    return 0;
}

注意:

this指针是类的成员函数的第一个参数,并且是隐式的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值