C++语法细节
详细介绍、解析学习过程中,遇到的C++问题,
巴啦啦拉粑粑
这个作者很懒,什么都没留下…
展开
-
C++ 返回值优化详解 RVO与NRVO
先举一个简化的类,该类只有一个private成员,并且有无参构造函数、有参构造函数、拷贝构造函数、移动构造函数、析构函数//Str.hclass Str{private: int size;public: Str() { cout << "调用无参构造函数"; } Str(int n) :size(n) { cout << "调用有参构造函数"; } Str(const Str& s) :size(s.size) { cout << "调用拷贝构原创 2020-06-19 23:10:12 · 1100 阅读 · 0 评论 -
C++ 辨析常量指针、指针常量与常量引用、引用常量
1.常量指针与指针常量的区分A、常量指针(const int* p)常量指针本质上是一个指针,是一个指向“常量”的指针,即不能通过指针改变指向对象的值(不能解除引用),但可以更改指向。用法如下int a=3,b=4;const int *p=&a; /初始化指向ap=&b; /可以更改指向,现在指向b*p=5; /不可以通过指针改变对象的值B、指针常量(int* const p)指针常量本质上是一个常量,const是修饰p的,即指针的值自身是一个常量,不可改变,始原创 2020-05-28 18:35:53 · 2851 阅读 · 0 评论 -
C++ 辨析指针与引用 点破引用的本质
1.本质上的区别①指针拥有自身的一块内存空间,存储的是指向的对象的地址;而引用是被引用对象的一个别名注:从汇编的角度看,引用与指针其实没有区别,引用实际上被解释为一个指针常量②从上面的注就引出了第二个区别:指针可以初始化为NULL,并且可以在任何时候初始化;而引用被创建时,就必须进行初始化,并且不能为空,必须绑定已有对象③指针可以有多级;而引用只有一级④指针在初始化后可以指向其他对象;但引用在初始化后就不能更改⑤指针和引用的自增运算不一样(指针的自增1是其指向的地址增加一个对象类型大小原创 2020-05-27 23:30:57 · 219 阅读 · 0 评论 -
C++ 常用的三种获取输入字符串方法辨析 cin 与 cin.getline 与 cin.get
我们最常用的获取输入字符串的方法肯定是cin了,但是如果我们要获取含有空格的字符串时应该怎么办呢,也许你第一时间想到了cin>>string,,用一个string对象去保存输入的字符串,如英文名等等如果我们不用string去处理,那么我们又该怎么办呢?1.cin.getline()该函数接受一个字符数组的首地址和个数,如char a[10];cin.getline(a,10)...原创 2020-03-24 00:17:56 · 736 阅读 · 0 评论 -
C++ 在类的继承中使用virtual定义虚函数,实现多态
1.概念首先要搞清楚什么是多态:多态:函数的行为取决于调用该函数的对象。多态分为:静态多态(静态联编)和动态多态(动态联编)静态多态的体现:函数重载,运算符重载,即在编译过程中实现联编动态多态的体现:虚函数,即在程序运行过程中才动态的确定操作对象其次还要明白,在C++中,派生类和基类之间的一种特殊关系:基类指针和引用可以在不进行显示转换的情况下指向派生类对象,称为向上强制转换,这在实现...原创 2020-03-17 01:36:21 · 657 阅读 · 0 评论 -
C++ 函数参数应该传递对象还是对象引用?函数应该返回对象还是对象引用?
在初学C++的时候,学到引用结合函数运用的部分,一直有一个疑惑:函数的参数应该是对象还是对象的引用?返回值选择返回对象还是对象的引用?二者又有什么区别?首先来看,函数参数方面:记住:编写使用对象作为参数的函数时,应按引用而不是按值来传对象,原因如下1.提高效率,按值传递(直接传递对象)涉及到生成了临时拷贝,即调用复制构造函数,然后调用析构函数,调用这些函数需要时间,比起直接传递对象的引用花费...原创 2020-03-15 16:07:48 · 1142 阅读 · 0 评论 -
C++ 当类的构造函数中使用new关键字时,注意使用复制(拷贝)构造函数,进行深复制
所谓深复制,通俗的解释就是:不仅仅是复制数据的地址,更要复制数据本身先来看一个不完善的类,如下:#include<iostream>#include<string>using namespace std;class StringBad{private: char *str;//指向字符串的指针 int len;//当前字符串的长度 static int ...原创 2020-02-27 17:16:28 · 1069 阅读 · 0 评论
分享