首页 > 编程语言 >C++ 类的基础知识

C++ 类的基础知识

时间:2023-06-23 19:44:23浏览次数:51  
标签:调用 函数 对象 定义 C++ 基础知识 析构 构造函数

1.类的定义

类就是数据类型,是用户定义的数据类型,对象可以看成某个类的实例(某个
类的变量)。所以说类是对象的封装,对象是类的实例。在类中定义的成员函数,都是 inline 函数。

2.类的修饰符

public、protected、private.
public进行修饰的成员表示的是该类可以提供的接口、功能、或者服务;
protected进行修饰的成员,其访问权限是开放给其子类;
private进行修饰的成员是不可以在类之外进行访问的,只能在类内部访问。

3.class 与 struct 的区别

在 C++ 中,与 C 相比, struct 的功能已经进行了扩展。 class 能做的事儿,~一样能做,他们之间唯一的区别,就是默认访问权限不同。 class 的默认访问权限是 private , struct 的默认访问权限是public。

4.对象的创建

构造函数在对象创建时自动调用,用以完成对象成员变量等的初始化及其他操作(如为指针成员动态申请内存等)。

5.对象的销毁

析构函数在对象撤销时自动调用,用以执行一些清理任务,如释放成员函数中动态申请的内存等。

6.析构函数调用的时机

1. 对于全局定义的对象,每当程序开始运行,在主函数 main 接受程序控制权之前,就调用构造函数创建全局对象,整个程序结束时,自动调用全局对象的析构函数。

2. 对于局部定义的对象,每当程序流程到达该对象的定义处就调用构造函数,在程序离开局部对象的作用域时调用对象的析构函数。

3. 对于关键字 static 定义的静态局部变量,当程序流程第一次到达该对象定义处调用构造函数,在整个程序结束时调用析构函数。

4. 对于用 new 运算符创建的对象,每当创建该对象时调用构造函数,当用 delete 删除该对象时,调用析构函数。

7.拷贝构造函数的调用时机

1. 当把一个已经存在的对象赋值给另一个新对象时,会调用拷贝构造函数。
2. 当实参和形参都是对象,进行实参与形参的结合时,会调用拷贝构造函数。
3. 当函数的返回值是对象,函数调用完成返回时,会调用拷贝构造函数。
  1. ' = ' 运算符重载
  • 如果不显示写出,编译器会默认提供,与下例一样的函数(浅拷贝)
Computer & Computer::operator=(const Computer & rhs)
{
    _brand = rhs._brand;
    _price = rhs._price;
    return *this;
}

标签:调用,函数,对象,定义,C++,基础知识,析构,构造函数
From: https://www.cnblogs.com/skycrash/p/17494195.html

相关文章

  • Window下的socket编程(c++实现)
    参考https://www.cnblogs.com/L-hq815/archive/2012/07/09/2583043.html 效果图: Sever.cpp点击查看代码#include<winsock2.h>#include<iostream>#include<string>usingnamespacestd;#pragmacomment(lib,"ws2_32.lib")intmain(intargc,......
  • C/C++经典面试题1(精心整理,附参考答案)
    1.说一下static关键字的作用2.说一下C++和C的区别(1)设计思想上(2)语法上3.说一说c++中四种cast转换(1)const_cast(2)static_cast(3)dynamic_cast(4)reinterpret_cast(5)为什么不使用C的强制转换?4.请说一下C/C++中指针和引用的区别?5.给定三角形ABC和一点P(x,y,......
  • 2021最新C++面试题(附答案)
    今天分享给大家的是比较全面的C/C++面试题,也都是C++版本升级之后,重新整理归纳的最新答案,会让C++面试者少走很多不必要的弯路。同时每个C++面试题都尽量做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂,同时这部分C++面试文档也是可以免费的提供给有需要的同学们学习的!博......
  • c++面试题(亲测常问)
    注意:此题为我自己面试被问到的,及一些摘抄的,如有侵权请联系我马上删除!1. 2.32位指针地址所占字节数为四举例说明:char*p;chartest[10];p=test;sizeof(p)=4(32位系统)//实质是求指针类型所占字节数,32位对应4字节,64位对应8字节sizeof(*p)=1//实质是求指针所指的内容所在......
  • C++面试题汇总
    目录1、C++三大特性1.1封装1.2继承1.3多态2、C++中map与unordered_map的区别3、unordered系列关联式容器4、STL常用函数,容器和使用容器的方法5、map的底层实现,存储的是什么,实现的时间复杂度6、虚函数6.1什么是虚函数6.2虚函数和纯虚函数的区别7、C++set和map......
  • c++面试常见问题总结
    近来在面试的过程,发现面试官在c++方面总是喜欢问及的一些相关问题总结,当时没怎么答出来,或者是答的不怎么全面,故而查询相关资料总结下。(后面实际工作会进行实时更新信息)<一>c++虚函数方面虚函数(VirtualFunction)是通过一张虚函数表(VirtualTable)来实现的。简称为V-Table。在......
  • c++面试知识整理
    C++基础部分1.基础知识1.1内存1.1.0内存四区1.1.1简述C、C++程序编译的内存分配情况1.1.2分配函数与释放函数1.2预编译1.2.1头文件<><><>和“““”””的问题1.2.2constconstconst与#definedefinedefine相比有什么优点1.3宏,内联函数1.3.1内联函数1......
  • 举证运算c++
    #include<iostream>#include<vector>#include<cmath>usingnamespacestd;classMatrix{private:introws;intcols;vector<vector<double>>data;public:Matrix(introwCount,intcolCount):rows(rowCount),cols(colC......
  • UE5 C++ Interface
    概述接口类有助于确保一组(可能)不相关的类实现一组通用函数接口声明声明接口类与声明普通的虚幻类相似,但仍有两个主要区别首先,接口类使用UINTERFACE宏而不是UCLASS宏,且直接从UInterface而不是UObject继承其次,UINTERFACE类不是实际的接口;它是一个空白类,它的存在只是为了向......
  • 第一阶段C++基础入门(黑马程序员)——Day2
    3运算符作用:用于执行代码的运算本章主要学习以下几类运算符:运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋值给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符用于根据表达式的值返回真值或假值3.1算术运算符作用:用于处理四则运算算术运......