C++中的结构、联合和枚举1.结构和C语言的不同:1)定义结构型变量时,可以省略struct关键字。2)结构内部可以定义函数——成员函数。3)sizeof (空结构) -> 1例子:#include <iostream>using namespace std;struct Student {char name[128];int age;vo …
c++ cout
面试中常见的C++面试题总结,快来看看,是否对你有帮助!1. 指针和引用的区别?(1)指针有自己的一块空间,而引用只是一个别名;(2)使用 sizeof 看一个指针的大小为4字节(32位,如果要是64位的话指针为8字节),而引用则是被引用对象的大小;(3)指针可以被初始化为 NULL,而引用必须被初始化且必须是一个已有对象的引用;(4)作为参数传递时,指针需 …
C++20(C++ 编程语言标准2020版)将是C++ 语言一次非常重大的更新。C++20 核心语言有四大特征。Concept(概念)Concept其实已经不是什么新东西了,在 C++ 11 还是 0x 的年代就已经有Concept的的概念了,属于C++里面喊了无数次狼来了的东西,C++在经历了111417,直到C++20才正式进入。使用模板进行通用编程的关 …
在学习C++的过程中会遇到很多难以理解的概念,今天我们就聊一聊C++中的左值引用和右值引用。在C++11以前还没有左值引用和右值引用的概念,只有引用的概念。右值引用是由C++11引入的,为了方便和右值引用区分,我们把C++11以前的常规引用称为左值引用。什么是左值引用和右值引用首先我们区分什么是左值和右值,有一个很好区分左值和右值的方式,就是是否可以对表达式 …
C++11的标准库 <utility> 提供了一个非常有用的函数 std::move(),std::move() 函数将一个左值强制转化为右值引用,以用于移动语义。关于左值和右值的理解可以参考:C++中左值和右值的理解 移动语义,允许直接转移对象的资产和属性的所有权,而在参数为右值时无需复制它们。换一种说法就是,std::move() 将对象的状 …
C++中增加了final关键字来限制某个类不能被继承,或者或个虚函数不能被重写,和java的final关键字的功能是类似的。如果使用final修饰函数,只能修饰虚函数,并且要把final关键字放到类或者函数的后面。修饰函数如果使用final修饰函数,只能修饰虚函数,这样就能阻止子类重写父类的这个函数了。示例:#include <iostream> …
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。推荐视频:工作5年以上程序员是如何理解和使用设计模式为什么不推荐做mcu与qt开发,c++ …
类的构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类 A,如果不想编写上述函数,C++编译器将自动为 A 产生四个缺省的函数 …
C++的输入输出特性C++是C的扩展,除了可以利用C语言提供的printf和scanf函数进行输出和输入外,还增加了标准输入输出流cout和cin。cout是代表C++的输出流,cin代表C++的输入流。它们是在头文件 iostream 中定义。键盘和显示器是计算机的标准输入输出设备,所以,在键盘和显示器上的输入输出称为标准输入输出。C++预定义的标准流如下 …
C++类中有几个特殊的非静态成员函数,当用户未定义这些函数时,编译器将给出默认实现。C++11前有四个特殊函数,C++11引入移动语义特性,增加了两个参数为右值的特殊函数。这六个函数分别是:默认构造函数默认构造函数指不需要参数就能初始化的构造函数。包含无参和所有参数有默认值两种类型的构造函数。复制构造函数复制构造函数指使用该类的对象作为参数的构造函数。可以有 …