首页 > 编程语言 >1.10日学习笔记之C++的类

1.10日学习笔记之C++的类

时间:2025-01-10 21:34:35浏览次数:1  
标签:short 函数 1.10 age 笔记 getage CPerson C++ 构造函数

·类其实就是一种数据类型,和结构相似。类的成员包括两类,属性(成员变量)和行为(成员函数)。
·成员函数定义的两种方法(可能有多种,觉得这两种比较常用)
1、将类的成员函数定义在类体内,如

class CPerson 
{
  public:  
  short age;

  short getage()
 {
    return age;
 }

};

2、将类的成员函数定义到类外部

class CPerson 
{
  public:  
  short age;

  short getage();
};
  short CPerson::getage()
{
  return age;
}

·类定义完成后,即可通过类名声明对象,语法格式为:类名 对象名

  CPerson p;
  p.age;            //可以使用"."运算符引用成员变量和函数
  p->getage();      //也可以使用“->”运算符引用成员变量和函数,此运算符还可以引用对象数组、对象指针和引用形式的对象

·类的构造函数和析构函数
构造函数:⽤于创建对象时为数据成员赋值,⽬的是初始化对象,构造函数与类名相同

class CPerson 
{
  public:  
  short age;
  CPerson(short Iage);      //声明构造函数(带参数)
  CPerson(CPerson & copyPerson);  //声明复制构造函数
  ~CPerson();                //声明析构函数
  char *name;
  short getage()
  {
    return age;
  }
}; 
CPerson::CPerson(short Iage,char *Iname)    //定义构造函数
{
  age=Iage;
  name=new char[2048];                    //使用关键词new动态分配一块内存
}
CPerson::CPerson(CPerson & copyPerson)  //定义复制构造函数
{
  age=copyPerson.age;
}
CPerson::~CPerson()                      //定义析构函数
{
  delete[] 
}
int main()
{
  CPerson p1(18);
  CPerson p2(p1)
  cout<<p1.getage()<<endl;    //输出18
  cout<<p2.age<<endl;         //输出18
  //析构函数在对象的生命周期结束,即将销毁时自动调用,用于清理内存
}

析构函数:在对象删除前起资源清理作⽤,析构函数与类名相同,并在前面加上“~”,通常情况下析构函数由编译器自动生成,不用特殊处理,但是如果类中使用了new关键字申请了动态分配内存,则必须显示地定义一个析构函数,以释放此空间。

参考书籍《C++从入门到精通》

标签:short,函数,1.10,age,笔记,getage,CPerson,C++,构造函数
From: https://www.cnblogs.com/xzaxs/p/18664679

相关文章

  • Python基础课笔记
    文章目录第二节——Python基础课陈述句整型字符串列表字典(哈希表)判断缩进判断空值循环for循环:foriin范围字典中循环while循环列表切片删除插入循环后置函数加减乘除定义函数类(类比JAVA)定义实例化继承(类比JAVA)矩阵numpy定义合并切片正常切跳着切张量Tensor定义......
  • 【C++】穿越编程岁月,细品C++进化轨迹,深化入门基石(续章)——揭秘函数缺省参数的魅力、函
    文章目录一、函数缺省参数二、函数重载三、引用1.引用的概念和定义2.引用的特性3.引用的使用4.const引用5.指针和引用的关系四、inline内联函数和nullptr1.inline2.nullptr一、函数缺省参数   缺省参数其实就是默认参数,它是声明或定义函数时为函数的参数指定......
  • 【C++】揭开C++类与对象的神秘面纱(首卷)(类的基础操作详解、实例化艺术及this指针的深
    文章目录一、类的定义1.类定义格式2.类访问限定符3.类域二、类的实例化1.实例化概念2.对象的大小三、隐藏的this指针与相关练习1.this指针的引入与介绍练习1练习2练习3一、类的定义1.类定义格式   在讲解类的作用之前,我们来看看类是如何定义的,在C++中,class......
  • Border 理论学习笔记
    Border理论学习笔记约定字符串下标从\(1\)开始。定义\(S+T\)为\(S\)与\(T\)这两个字符串的拼接。定义\(S[l:r]=S_l+S_{l+1}+\cdots+S_r\)。定义\(pre(i,S)=S[i:n],suf(i,S)=S[|S|-i+1:n]\),也就是\(S\)​的前后缀。对于\(S,T\),若\(T[i:i+|S|-1]\),......
  • Qt C++学习笔记1.7
    1.7Qt入门:实现一个图片查看软件需要用到的控件:QLabelQLineEditQPushButton需要实现的功能:打开目录选择图片显示图片的名字显示图片QLabel基本用法设置文本voidsetText(constQString&);获取文本QStringtext()const;设置图片voidsetPixmap(constQPixm......
  • 1.9日学习笔记之高阻态和开漏输出
    三态:高电平、低电平和高阻态高阻态输出(High-ZOutput):高阻态输出是指一个IO口处于高阻抗状态,此时IO口既不输出高电平也不输出低电平,而是呈现高阻抗状态,相当于断开电路。高阻态输出的主要用途是:多设备共享总线:允许多个设备共享同一根数据线,但每次只有一个设备能够控制这条数据......
  • C++并发编程之基于锁的数据结构的适用场合与需要考虑和注意的问题
    在C++多线程编程中,锁是一种常用的同步机制,用于保护共享数据,防止多个线程同时访问和修改,从而避免数据不一致或其他并发问题。基于锁的数据结构适用于多种并发编程场合,但同时也需要注意一些关键问题。1. 适用的并发编程场合锁在以下几种场合特别有用:1.1 保护共享数据当多个......
  • 深度学习笔记11-优化器对比实验(Tensorflow)
    ......
  • 详解 C++ 防御性编程声明一个类型 int *(*(*foo)(int))[5];
    C++中有一些语法由于灵活性和强大功能显得非常复杂。例如,复杂声明是许多人在学习C++时遇到的难题之一。下面以一条常被称为“C++最难的声明”为例,逐步拆解它的含义。声明:int*(*(*foo)(int))[5];这是一个看似复杂的C++声明。让我们逐步分析它的含义。1.阅读......
  • c++ 赋值运算符的定义
    1.赋值运算符的定义赋值运算符是用于修改已有对象的内容,而不是用于创建新对象。其典型的定义如下:Person&Person::operator=(constPerson&other);Person&Person::operator=(Person&&other);左侧对象(*this):表示已经存在的目标对象。右侧对象(other):表示要从中复制或转......