C++
文章平均质量分 67
编程小程
这个作者很懒,什么都没留下…
展开
-
多重继承与派生类成员标识
有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,不要设计出菱形继承。否则在复杂度及性能上都有问题。原创 2022-07-26 09:06:40 · 366 阅读 · 0 评论 -
C++ 不同继承之间的的关系
公有继承与组合的区别继承与组合都是面向对象中代码复用的方式。父类的内部细节对子类可见,其代码属于白盒式的复用;例如。原创 2022-07-21 00:00:37 · 519 阅读 · 0 评论 -
C++继承和派生
C++通过类派生(classderivation)的机制来支持继承。被继承的类称为基类或超类(superclass),新产生的类为派生类(derivedclass)或子类(subclass)。基类和派生类的集合称作类继承层次结构(hierarchy)。class派生类名访问限定符基类名{private成员表1;//派生类增加或替代的私有成员public成员表2;//派生类增加或替代的公有成员protected成员表3;private。...原创 2022-07-20 08:48:53 · 3169 阅读 · 0 评论 -
C++友元(friend)
友元分为外部函数友元, 成员函数友元,类友元。不具有对称性:A 是 B 的友元, 并不意味着 B 是A的友元不具有传递性:A是B的友元, B是C的友元, 但A不是C的友元。不具有继承性: Base 类型继承 Object类型, 如果Object 类型是A的友元,但Base类型不是A友元。外部函数友元:示例需要在类中进行对其进行声明,则可以访问类的所有成员成员函数友元将一个成员函数声明成友元的时,必须要指明该成员函数属于哪个类:总结:1.友元函数不是类的成员函数,在函数体中访问对象的成员,必须原创 2022-06-27 18:06:43 · 516 阅读 · 0 评论 -
C++基础--- new/delete的使用
文章目录newdeletenewdelete原创 2022-05-23 23:02:13 · 3261 阅读 · 0 评论 -
C++基础 函数重载
缺省参数一般情况下,函数调用时的实参个数应该与形参相同,但是为了更方便的使用函数,C++ 也允许缺省值中给函数的默认值的给法从右向左给,默认值不一定是一个常量也可能是一个函数的返回值函数的默认值在函数的声明中给,最好不要咋函数的定义中给在多文件结构中,在声明中给默认值,并且在声明中可以省略参数名称不能形参作为另一种函数的默认值重载概念:在C++中可以为两个或者两个以上函数提供相同的函数名称,只要参数类型不同,或者参数数目不同,参数顺序不同,即参数表不同,那么就认为是函数的重载。(函数名+参数原创 2022-05-20 16:14:31 · 191 阅读 · 0 评论 -
C++基础---缺省参数
文章目录缺省参数定义用法缺省参数一般情况下,函数调用时的实参个数应与形参相同,但为了更方便地使用函数,C++也允许定义具有缺省参数的函数,这种函数调用时,实参个数可以与形参不相同。定义缺省参数指在定义函数时为形参指定缺省值(默认值)。这样的函数在调用时,对于缺省参数,可以给出实参值,也可以不给出参数值。如果给出实参,将实参传递给形参进行调用,如果不给出实参,则按缺省值进行调用。缺省参数的函数调用:缺省实参并不一定是常量表达式,可以是任意表达式,甚至可以通过函数调用给出。如果缺省实参是任意表达式,则原创 2022-05-15 21:44:11 · 365 阅读 · 0 评论 -
C++基础----inline函数
inline 函数当程序执行函数调用时,系统要建立栈空间,保护现场,传递参数以及控制程序执行的转移等等,这些工作需要系统时间和空间的开销。请看如下程序段,读入一行字符串,逐个判断是否为数字字符:#include<iostream>using namespace std;bool IsNumber(char ch){return ch>= ʹ0ʹ && ch <= ʹ9ʹ ? 1 : 0;}int main(){char ch;while(ci原创 2022-05-14 00:20:24 · 314 阅读 · 0 评论 -
C++ 基础----(const与指针)
文章目录const与指针const用法const在C语言中和C++中的区别const与指针的关系const与指针const用法const在类型名之前,不能通过指针修改指针指向的值,如下面示例,我们不能通过p1的解引用来修改a的值。int a =10; const int *p1 = &a; // ok *p1 = 100; //errorcosnt在指针名之前,不能修改指针指向的地址如下面示例,p2指向a的地址之后,将不能改变它的指向int a = 10;i原创 2022-05-11 10:34:58 · 133 阅读 · 0 评论 -
C++基础---初始化与输入输出
文章目录C++的初始化输入输出C++的初始化相比于C语言,C++对变量的初始化有多种方式,如:int main(){ int a =10; int b(10); int c{10}; return 0; } 可以看到在C++ 中上述三种方式都可以成功的对变量进行初始化,但是如果在定义变量不给初值的时候,这三种方式还是有区别的,如下图:可以看到 a变成了随机值,b无法定义,c被初始化为了0,因此这三种初始化方法中,最后一种方法是比较好的。当然 初始化数组也可以用大括号的形式如:原创 2022-05-10 11:25:58 · 464 阅读 · 0 评论 -
拷贝构造函数
同一个类的对象在内存中有相同的结构,如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程需要拷贝数据成员,而函数成员是共用的。在建立对象时可用同一类的另一个对象来初始化该对象的存储空间,这时所用的构造函数称之为拷贝构造函数。拷贝构造函数的参数采用引用的方式。注:若不加引用,会发生实参到形参的拷贝操作,会造成死递归。class CGoods{private: char Name[21]; int Amount; double Price; double Total_valu..原创 2022-02-08 23:03:09 · 335 阅读 · 0 评论 -
构造函数与析构函数
1.构造函数数据成员多为私有的,要对他们进行初始化,必须要一个共有函数来进行。同时这个函数应该在且仅在定义对象时候自动执行一次,这就是构造函数。构造函数用途:1)创建对象2)初始化对象中的属性3)类型转换构造函数是特殊的公有成员函数,特征如下:1) 函数名与类名相同2)构造函数无函数返回值类型说明3)在程序运行时,当新的对象被建立,该对象所属的构造函数自动被调用,在该对象的生存期只调用这一次4)构造函数可以重载。类中可以...原创 2022-01-26 21:36:25 · 1138 阅读 · 0 评论 -
类与对象的定义
封装是面向对象程序设计最基本的特性,把数据(属性)和函数(操作)合成一个整体,这就需要用类和对象来实现它。在C++中,类是一种数据类型。客观事物是复杂的,要描述它,必须从多方面进行,也就是用不同的数据类型描述不同的方面。如商场中商品可以这样描述:商品名称(用字符串描述),该商品数量(用整型描述),该商品单价(用浮点数描述),该商品单价(用浮点数描述).这里用了属于三种不同数据类型的四个数据成员(data member)来描述一种商品。C++可以这样表述class CGoods原创 2022-01-15 09:00:00 · 553 阅读 · 0 评论