C++--类与对象(一)

35 篇文章 0 订阅

1. 类的定义

  • class为定义类的关键字,className为类的名字,{}中为类的主体。
class className 
{
	//类体:由成员函数和成员变量组成
};
  • 类的定义方式:①声明和定义全部放在类体中,②声明放在.h文件中,类的定义放在.cpp文件中。
//C++中常用的定义类方式 class  类名  {所有成员};
//声明和定义全部放在类体中
class Student
{
public:
	//成员函数
	void SetStudentInfo(const char* name, const char* gender, int age)
	{
		strcpy(_name, name);
		strcpy(_gender, gender);
		_age = age;
	}

	void PrintStudentInfo()
	{
		cout << _name << " " << _gender << " " << _age << endl;
	}
	//成员变量
	char _name[20];
	char _gender[3];
	int _age;
};
void test()
{
	Student stu;
	stu.SetStudentInfo("acd", "男", 30);
	stu.PrintStudentInfo();
	cout << stu._gender << endl;
}

2. 类的访问限定符

  • public(公有):修饰的成员在类外可以被直接访问;
  • protected(保护)private(私有):修饰的成员在类外不能直接被访问;
  • 访问权限作用域:从该访问限定符出现的位置开始直到下一个访问限定符出现为止;
  • class默认访问权限为private。

3. 类的大小

  • 一个类的大小实际上就是在进行内存对齐后,该类中“成员变量”之和;
  • 空类的大小:编译器给了空类一个字节来唯一标识这个类。
class A
{
public:
	int _a;
};

class B  //成员函数不占对象的空间
{
public:
	int fun1(int a, int b)
	{
		return a + b;
	}
public:
	int _a;
};

class C  //不包含成员变量,大小类似与空类的大小
{
public:
	int fun1(int a, int b)
	{
		return a + b;
	}
};

class D  //空类  1字节
{
};

在这里插入图片描述

4. this指针

  • this指针:C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。
  • 每一个非静态成员函数中,都有一个this指针
  • 是一个成员函数的形参,对象中不存储this指针
  • this指针时成员函数第一个隐含的指针形参
  • this指针类型:类类型*const this
  • 只能在“成员函数”内部使用
class Date
{
public:
	void Display()  //void Display(this)
	{
		cout << _year << "-" << _month << "-" << _day << endl;
	}
	void SetDate(int year, int month, int day)  //void SetDate(this, int year, int month, int day)
	{
		this->_year = year;
		_month = month;
		_day = day;
	}
private:
	int _year;
	int _month;
	int _day;
};

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值