
C++的类
文章平均质量分 92
专门讲C++类部分的知识的
掘根
感谢吾师,导吾以狭路,示吾以通途
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++类继承基础6——多重继承与虚基类
虚基类是在派生类定义时,指定继承方式时声明的。class 派生类名: virtual 访问标签 虚基类名,... { //类体成员列表还有一种形式是class 派生类名: 访问标签 virtual 虚基类名,... {// 成员列表需要注意,为了保证虚基类在派生类中只继承一次,应当在该基类的所有直接派生类中声明为虚基类。否则仍然会出现对基类的多次继承(我们下面会举例子)例:虚基类举例class A { //声明为基类Apublic:A(int n) { //A类的构造函数nv=n;原创 2024-03-28 20:14:22 · 1686 阅读 · 7 评论 -
C++类继承基础5——构造函数与拷贝控制
{public: // 默认情况下,基类的默认构造函数初始化对象的基类部分// 要想使用拷贝或移动构造函数,我们必须在构造函数初始值列表中// 显式地调用该构造函数D(const D& d): Base(d) // 拷贝基类成员/*D的成员的初始值*/{/*...*/}D(D&& d): Base (std::move (d)) //移动基类成员/* D的成员的初始值*/{}初始值Base(d)将一个D对象传递给基类构造函数。原创 2024-03-30 17:14:28 · 915 阅读 · 0 评论 -
C++类继承基础4——继承中的类作用域
派生类的作用域位于基类作用域之内这一事实可能有点儿出人意料,毕竟在我们的程中派生类和基类的定义是相互分离开来的。原创 2024-03-30 12:56:53 · 1190 阅读 · 1 评论 -
C++类继承基础3——访问控制与继承
我们看个例子我们看个例子。原创 2024-03-30 11:33:37 · 1569 阅读 · 1 评论 -
C++类继承基础2——虚函数和纯虚函数
通常情况下,如果我们不使用某个函数,则无须为该函数提供定义。原创 2024-03-29 23:10:43 · 964 阅读 · 0 评论 -
C++类继承基础1——基类和派生类的恩恩怨怨
我们看看下面这个例子系统自动提供的默认构造函数。原创 2024-02-15 12:26:41 · 1026 阅读 · 1 评论 -
C++友元(友元函数,友元类,友元成员函数)
类作友元的步骤和友元函数差不多。原创 2024-02-12 15:50:57 · 877 阅读 · 1 评论 -
C++运算符重载
10.作为全局函数或者友元函数时,二元操作符需要两个参数,一元操作符需要一 个参数,而且其中必须有一个参数是对象,好让编译器区分这是程序员自定义的运算符, 防止程序员修改用于内置类型的运算符的性质。原创 2024-02-12 11:44:26 · 2161 阅读 · 1 评论 -
掘根宝典之C++包含对象的类,私有继承,保护继承,三大继承方式总结
我们来看个例子这里的访问权限可能会让大家有一点绕。实际上并没有。我们把AA类视为类,把BB类视为main函数,这样子BB类对AA类的访问权限就明白了。原创 2024-02-16 14:06:43 · 1511 阅读 · 0 评论 -
C++类基础12——this指针
在C++中,this指针是一个特殊的指针,它指向当前对象。每个非静态成员函数都有一个隐式的this指针被作为隐藏参数传递给它(而且通常是函数的第一个参数),它可以在函数内部访问对象的成员(无论是public,还是private,protected)编译器眼中的代码。原创 2024-02-11 20:28:42 · 474 阅读 · 1 评论 -
C++类基础11——运算符重载
重载运算符函数的参数数量与该运算符作用的运算对象数量一样多。一元运算符有一个参数,二元运算符有两个。对于二元运算符来说,左侧运算对象传递给第一个参数,而右侧运算对象传递给第二个参数。原创 2024-04-06 10:40:54 · 1267 阅读 · 5 评论 -
C++类基础10——重载,类型转换,运算符
public:private:我们的SmallInt 类既定义了向类类型的转换,也定义了从类类型向其他类型的转换,si = 4;// 首先将 4 隐式地转换成 SmallInt,然后调用 SmallInt::operatoc=si+3;// 首先将si隐式地转换成int,然后执行整数的加法尽管编译器一次只能执行一个用户定义的类型转换,但是隐式的用户定义类型转换可以置于一个标准(内置)类型转换之前或之后,并与其一起使用。因此,我们可以将任何算术类型传递给SmallInt的构造函数。原创 2024-04-06 00:38:17 · 1568 阅读 · 2 评论 -
C++类基础9——类成员指针
成员指针是指可以指向类的非静态成员的指针。一般情况下,指针指向一个对象,但是成员指针指示的是类的成员,而非类的对象。类的静态成员不属于任何对象,因此无须特殊的指向静态成员的指针,指向静态成员的指针与普通指针没有什么区别。成员指针的类型囊括了类的类型以及成员的类型。当初始化一个这样的指针时,我们令其指向类的某个成员,但是不指定该成员所属的对象:直到使用成员指针时,才提供成员所属的对象。为了解释成员指针的原理,我们定义下面这个类:数据成员指针和其他指针一样,在声明成员指针时我们也使用*来表示当前声明的原创 2024-04-01 23:26:55 · 1349 阅读 · 0 评论 -
C++类基础8——嵌套类和局部类
我们在TextQuery内声明了QueryResult,但是没有给出它的定义。和成员函数一样,嵌套类必须声明在类的内部,但是可以定义在类的内部或者外部。当我们在外层类之外定义一个嵌套类时,必须以外层类的名字限定嵌套类的名字;// QueryResult是TextQuery的成员,下面的代码负责定义QueryResult//位于类的作用域内,因此我们不必对QueryResult形参进行限定public://无须定义 QueryResult::line_no。原创 2024-04-01 12:21:21 · 1362 阅读 · 1 评论 -
C++类基础7——移动构造函数,移动赋值运算符
举例:字面值和变量是最简单的表达式,“a+b”也是表达式,函数的返回值也被认为是表达式。原创 2024-03-31 12:00:48 · 1126 阅读 · 1 评论 -
C++类基础6——拷贝,赋值和构造的关系,阻止拷贝
需要一个析构函数。通常,对析构函数的需求要比对拷贝构造函数或赋值运算符的需求更为明显。原创 2024-03-30 23:40:54 · 1109 阅读 · 1 评论 -
C++类基础5——拷贝构造函数,拷贝赋值运算符(复制构造函数,复制赋值运算符)
但是,对一些类来说,依赖这些操作的默认定义会导致灾难。通常,实现拷贝控制操作最困难的地方是首先认识到什么时候需要定义这些操作。在定义任何C++类时,拷贝控制操作都是必要部分。原创 2024-03-30 20:51:08 · 1251 阅读 · 0 评论 -
C++类基础4——转换构造函数,转换函数
我们先来复习一下C++是如何处理内置类型转换的。将一个标准类型变量的值赋给另一种标准类型的变量时,如果这两种类型兼容,则C++自动将这个值转换为接受变量的类型。比如像下面这样这是因为在C++看来,各种数值类型都表示相同的东西——一个数字,同时C++包含用于进行转换的内置规则。不过C++不自动转换不兼容的类型这个时候我们就要用到强制类型转换了。原创 2024-02-13 12:06:40 · 2097 阅读 · 2 评论 -
C++类基础3——深复制与浅复制(复制构造函数,默认复制构造函数)
接下来我们来学习一个新函数——复制构造函数。原创 2024-02-14 14:31:30 · 1945 阅读 · 1 评论 -
C++类基础2——构造函数和析构函数
定义类时一般来说一定要写构造函数和析构函数,防止一切不确定的错误发生。原创 2024-02-11 13:51:25 · 1476 阅读 · 1 评论 -
C++类基础1——创建类
总之,类是定义和描述对象的模板,是抽象的概念;而对象是类的具体实例,是具体的数据实体。类定义了对象的属性和行为,通过对象可以访问和操作类中定义的成员。原创 2024-02-10 16:37:49 · 2616 阅读 · 1 评论