类与对象\类的定义

简介: 类与对象\类的定义

类是一种复杂的数据类型,是具有共同属性和行为的对象的抽象

类的静态属性 >> 特征

类的动态属性 >> 操作

数据成员:代表静态属性的数据

成员函数:共同拥有的动态特征的行为

类的定义格式

  • 说明部分
  • 有什么
  • 做什么
  • 实现部分
  • 怎么做

类的定义以分号结束

所有类成员名称都是局部变量 >> 类外使用不会重名

  • 访问权限(控制)修饰符
  • public >> 公有属性
  • private >> 私有属性
  • protected >> 保护属性

类中成员默认属性 >> private

类的数据成员和成员函数可以根据需要声明为任意一种访问属性,声明时,顺序、次数任意

在类定义内部,所有成员间可以相互访问

在类外,只能以 “.” 的格式访问公有成员

类成员函数的两种实现方式

成员函数有权访问本类对象的所有成员

  • 方式一:成员函数写在类内
# include <iostream>
using namespace std;
class CDate
{
private:
  int Date_Year;
  int Date_Month;
  int Date_Day;
public:
  void SetDate(int year, int month, int day)
  {
    Date_Year = year;
    Date_Month = month;
    Date_Day = day;
  }
  void Display()
  {
    cout << "Date: " << Date_Year << "-" << Date_Month << "-" << Date_Day << endl;
  }
  int GetYear()
  {
    return Date_Year;
  }
};
  • 方式二:成员函数的实现放在类定义的外部
  • 使用 “类名::” 来表名该函数不是一个普通函数
#include <iostream>
using namespace std;
class CDate
{
private:
  int Date_Year;
  int Date_Month;
  int Date_Day;
public:
  void SetDate(int,int,int);
  void Display();
  int GetYear();
};
void CDate::SetDate(int year, int month, int day)
{
  Date_Year = year;
  Date_Month = month;
  Date_Day = day;
}
void CDate::Display()
{
  cout << "Date: " << Date_Day << "/" << Date_Month << "/" << Date_Year << endl;
}
int CDate::GetYear()
{
  return Date_Year;
}
  • 主函数实现
int main()
{
  CDate date1, date2;
  int age=0;
  date1.SetDate(2019, 10, 15);
  date2.SetDate(2002, 10, 15);
  
  age=date1.GetYear()-date2.GetYear();
  cout<<"He is: "<<age<<" years old."<<endl;
  cout<<"His birthday is: ";
  date2.Display();
  return 0;
}

内联函数

  • 函数首部最前面增加关键字inline,则该函数被声明为内联函数
  • 类的函数在类说明中实现时,默认为内联函数

优点

  • 将调用表达式用内联函数体来替换
  • 增加了目标程序代码量,增加了空间的开销
  • 减少了时间开销
  • 在内联函数中不使用递归、循环、开关语句
目录
相关文章
|
9月前
|
存储 弹性计算 JavaScript
面向对象-1:类的定义
本实验将介绍TypeScript中类的定义
28 0
|
10天前
类与对象\对象的应用
类与对象\对象的应用
9 2
|
1月前
|
编译器 C语言 C++
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
|
1月前
|
存储 编译器 程序员
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
【C++】类和对象①(什么是面向对象 | 类的定义 | 类的访问限定符及封装 | 类的作用域和实例化 | 类对象的存储方式 | this指针)
|
1月前
|
编译器 C语言 C++
【c++】类和对象 - 类的引入和定义
【c++】类和对象 - 类的引入和定义
【c++】类和对象 - 类的引入和定义
|
1月前
|
Java 程序员
类与对象、封装、构造方法
类与对象、封装、构造方法
|
1月前
|
C++
『 C++类与对象』继承
『 C++类与对象』继承
|
1月前
|
Java
Java面向对象编程,如何定义一个接口并在类中实现它?
Java面向对象编程,如何定义一个接口并在类中实现它?
59 1
|
11月前
|
C语言 C++
<c++> 类与对象 | 面向对象 | 访问说明符 | 类的声明 | 创建类
<c++> 类与对象 | 面向对象 | 访问说明符 | 类的声明 | 创建类
79 0
|
9月前
|
存储 安全 编译器
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
88 0