类与对象\类的定义

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

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

类的静态属性 >> 特征

类的动态属性 >> 操作

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

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

类的定义格式

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

类的定义以分号结束

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

  • 访问权限(控制)修饰符
  • 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,则该函数被声明为内联函数
  • 类的函数在类说明中实现时,默认为内联函数

优点

  • 将调用表达式用内联函数体来替换
  • 增加了目标程序代码量,增加了空间的开销
  • 减少了时间开销
  • 在内联函数中不使用递归、循环、开关语句
目录
相关文章
|
存储 编译器 程序员
【C++】类与对象(一)类的定义 访问限定符 类的实例化 this指针
【C++】类与对象(一)类的定义 访问限定符 类的实例化 this指针
|
存储 弹性计算 JavaScript
面向对象-1:类的定义
本实验将介绍TypeScript中类的定义
|
2月前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
51 2
|
6月前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
38 0
|
7月前
|
存储 编译器 C++
【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针
【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针
|
7月前
|
编译器 C语言 C++
【c++】类和对象 - 类的引入和定义
【c++】类和对象 - 类的引入和定义
【c++】类和对象 - 类的引入和定义
|
C语言 C++
<c++> 类与对象 | 面向对象 | 访问说明符 | 类的声明 | 创建类
<c++> 类与对象 | 面向对象 | 访问说明符 | 类的声明 | 创建类
105 0
|
7月前
|
存储 编译器 C++
C++类与对象【继承】
C++类与对象【继承】
|
7月前
|
C++
『 C++类与对象』继承
『 C++类与对象』继承
|
存储 安全 编译器
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
133 0