C++ —— 类和对象(上)

文章目录

  • 1.面向过程和面向对象的初步认识
  • 2.类的引入
  • 3. 类的定义
  • 4. 类的访问限定符及封装
    • 4.1 访问限定符
    • 4.2 struct 和 class的区别
    • 4.3 封装
  • 5. 类的实例化
  • 6. 类对象模型
    • 6.1 如何计算类对象的大小
    • 6.2 类对象的存储方式猜测
    • 6.3 结构体内存对齐规则
  • 7. this指针
    • 7.1 this指针的引出
    • 7.2 this指针的特性


1.面向过程和面向对象的初步认识

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题;
C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成;

2.类的引入

C语言结构体中只能定义变量,在C++中,结构体不仅可以定义变量,也可以定义函数。

//日期类
struct Date
{
   
	//成员函数
	void DateInit(int year = 1, int month = 1, int day = 1)
	{
   
		_year = year;
		_month = month;
		_day = day;
	}

	//成员变量
	int _year;
	int _month;
	int _day;
};

在C++中,更喜欢用class来代替struct

3. 类的定义

class className
{
   
	//类体:由成员函数和成员变量组成
}; //一定要加分号!

class为定义类的关键字className为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略
类体中内容称为类的成员:类中的变量称为类的属性成员变量;类中的函数称为类的方法或者成员函数

类的两种定义方式:
1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理;

class Person
{
   
public:
	//显示基本信息
	void showInfo()
	{
   
		cout << _name << "-" << _sex << "-" << _age << endl;
	}

private:
	char* _name;//姓名
	char* _sex;//性别
	int _age;//年龄
};

**2.**类声明放在.h文件中,成员函数定义放在.cpp文件中;注意:成员函数名前需要加类名 ::

//.h文件
class Person
{
   
public:
	显示基本信息
	void showInfo();

private:
	char* _name

你可能感兴趣的:(C++,c++)