-
C++基类与派生类的析构函数
所属栏目:[语言] 日期:2022-07-02 热度:108
和构造函数类似,析构函数也不能被继承。与构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉。 另外析构函数的执行顺序和构造函数的执行顺序也刚好相反: 创建派生[详细]
-
C++多继承 多重继承 细说
所属栏目:[语言] 日期:2022-07-02 热度:63
在前面的例子中,派生类都只有一个基类,称为单继承(Single Inheritance)。除此之外,C++也支持多继承(Multiple Inheritance),即一个派生类可以有两个或多个基类。 多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的[详细]
-
C++虚继承和虚基类解说
所属栏目:[语言] 日期:2022-07-02 热度:71
多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。 多继承时很容易产生命名冲突,即使[详细]
-
C++虚继承时的构建函数
所属栏目:[语言] 日期:2022-07-02 热度:186
在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能[详细]
-
C++将派生类赋值给基类 向上变型
所属栏目:[语言] 日期:2022-07-02 热度:172
在 C/C++ 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换的前提是,编译器知[详细]
-
C++多态和虚函数迅速入门教学
所属栏目:[语言] 日期:2022-07-02 热度:196
在《C++将派生类赋值给基类(向上转型)》一节中讲到,基类的指针也可以指向派生类对象,请看下面的例子: #include iostream using namespace std; //基类People class People{ public: People(char *name, int age); void display(); protected: char *m[详细]
-
C++虚函数注意点以及构成多态的条件
所属栏目:[语言] 日期:2022-07-02 热度:95
C++ 虚函数对于多态具有决定性的作用,有虚函数才能构成多态。上节《C++多态和虚函数快速入门教程》我们已经介绍了虚函数的概念,这节我们来重点说一下虚函数的注意事项。 1) 只需要在虚函数的声明处加上 virtual 关键字,函数定义处可以加也可以不加。 2)[详细]
-
C++纯虚函数及抽象类详解
所属栏目:[语言] 日期:2022-07-02 热度:123
在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系[详细]
-
C++ typeid运算符 取得类型信息
所属栏目:[语言] 日期:2022-07-02 热度:87
typeid 运算符用来获取一个表达式的类型信息。类型信息对于编程语言非常重要,它描述了数据的各种属性: 对于基本类型(int、float 等C++内置类型)的数据,类型信息所包含的内容比较简单,主要是指数据的类型。 对于类类型的数据(也就是对象),类型信息[详细]
-
C++函数的默认参数细说
所属栏目:[语言] 日期:2022-07-01 热度:153
在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认[详细]
-
C++类和对象到底是哪个意思
所属栏目:[语言] 日期:2022-07-01 热度:51
C++ 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。 C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体[详细]
-
怎样编译和运行C++程序
所属栏目:[语言] 日期:2022-07-01 热度:121
C++ 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程序,步骤是一样的,这里不再赘述,读者[详细]
-
C++命名空间 名字空间 分析
所属栏目:[语言] 日期:2022-07-01 热度:152
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 例如小李和小韩都参与了一个文件管理系统的开发,它们都定义[详细]
-
C++头文件与std命名空间
所属栏目:[语言] 日期:2022-07-01 热度:60
C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一[详细]
-
C++输入输出 cin与cout
所属栏目:[语言] 日期:2022-07-01 热度:99
在C语言中,我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C++语言中,C语言的这一套输入输出库我们仍然能使用,但是 C++ 又增加了一套新的、更容易使用的输入输出库。 运行结果如下(↙表示按下回车键): Please input an int number: 8[详细]
-
C++变量的定义方位
所属栏目:[语言] 日期:2022-07-01 热度:149
C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。 C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不[详细]
-
C++布尔类别 bool
所属栏目:[语言] 日期:2022-07-01 热度:135
在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如: #include stdio.h int main(){ int a, b, flag; scanf(%d %d, a, b); flag = a b; //flag保存关系运算结果 printf(flag = %dn, flag); return 0; } bool 是类型名字,[详细]
-
C++ new和delete运算符介绍
所属栏目:[语言] 日期:2022-07-01 热度:97
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。 用 new 和 delete 分配内存更加简单: int *p = new int[详细]
-
C++ inline内联函数说明
所属栏目:[语言] 日期:2022-07-01 热度:163
函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行。 一个 C[详细]
-
css遮罩层镂空效果怎样做?教你四种办法
所属栏目:[语言] 日期:2022-01-12 热度:50
css遮罩层镂空效果怎样做?css遮罩层镂空效果是比较常用的,能应用的场景有很多,而实现css遮罩层镂空效果的方法也有很多,接下来给大家分享四种方法,需要的朋友可以参考。 先看看效果 【 方法一:截图模拟实现 】 原理:先截一张相同位置的图片,创建一[详细]
-
css盒子的隐藏和显示效果如何做?
所属栏目:[语言] 日期:2022-01-12 热度:190
这篇文章主要给大家分享css盒子的隐藏和显示效果的实现,需求就是常规就是隐藏效果,显示的时候显示在最上层,例如下面小米电视机这种选购效果,那么这样的隐藏和显示效果怎样做呢?我们直接来看代码: .imgbox{ width: 1200px; height: 612px; margin-rig[详细]
-
用@media怎样完成响应式适配屏幕?
所属栏目:[语言] 日期:2022-01-12 热度:151
这篇文章主要给大家介绍用@media怎样实现响应式适配屏幕的内容,一些朋友可能对@media不是很了解。对此下面我们先简单的了解@media的定义和使用,再看@media怎样实现响应式适配屏幕。 定义和使用 使用 @media 查询,你可以针对不同的媒体类型定义不同的样[详细]
-
css引入字体@font-face的兼容问题怎样处理?
所属栏目:[语言] 日期:2022-01-12 热度:106
在做网页的时候,我们使用@font-face来引入字体是非常方便的。但是通过@font-face引入字体时,兼容问题是需要考虑的,因为不同浏览器的兼容效果是不同的,那么对此我们要怎样解决兼容的问题呢?下面我们来具体的了解一下。 注意: 支持 @font-face 的浏览[详细]
-
filter与fixed冲突是什么原因?如何处理?
所属栏目:[语言] 日期:2022-01-12 热度:132
这篇文章主要给大家分享关于filter与fixed冲突的内容,下文会给大家介绍filter与fixed冲突的原因及解决方法,需要的朋友可以参考,接下来我们一起来学习一下吧。 问题描述 当在 body 中使用了 filter 滤镜属性的时候,会导致 fixed 元素定位发生错误,即不[详细]
-
用css怎样完成一个带尖角对话框效果?
所属栏目:[语言] 日期:2022-01-12 热度:57
一、用css怎样实现一个带尖角对话框效果?我们在一些聊天窗口,常能看到带尖角的对话框,那么这种对话框是怎样做的呢?其实现实这种对话框效果并不困难,这篇文章就给大家分享一下用CSS实现带尖角对话框效果的示例。 二、效果 三、代码 css;toolbar:falses[详细]