c++积累学习
假老练啊哦
男性最大的魅力是幽默
展开
-
ASCII:小写字母和大写字母、位运算
ASCII大写字母 A~Z 65-90中间有六个字符 [ \ ] ^ _ `所以小写从 a 97 a~z 97-122利用位运算法左移1位:等于乘以2右移1位:等于除以2要表示2^n = 1<< n (1向左移动n位) '&' !!!位运算的时候,不需要转换成二进制!直接用十进制就可以了!class Solu...原创 2019-03-13 15:07:33 · 1584 阅读 · 0 评论 -
explicit构造函数
explicit : 明确的,显示的抑制构造函数定义的隐式转换将构造函数声明为explicit加以阻止class sales_data{ public: sales_data() = default; sales_data(const string&s,unsigned n,double p):bookNo(s),units_sold(...原创 2019-03-20 14:33:22 · 4185 阅读 · 0 评论 -
C语言中宏定义(#define)时do{}while(0)的价值
1、避免了if...else语句的不匹配。下面的宏定义没有使用do{...}while(0)#define FOO(x) foo(x); bar(x);当单独调用时候不会出现任何问题,但是如果放在了if...else语句之中if(condition) FOO(x);else ...;如果经过宏扩展就变成了:if(condition) foo(...原创 2019-03-24 10:49:39 · 764 阅读 · 0 评论 -
基类和派生类之间的引用和指针关系
基类对象可以定义一个指针指向派生类,但是派生类不可以定义指针指向基类。因为:基类如果定义的指针,指针中存放的数据都是基类中存在的,而派生类继承了这些subobject;但是如果派生类定义指针,这个指针所指向的对象不仅仅有基类的subobject,还有自己的一部分定义的数据,用这个指针去访问基类就可能会访问到一些根本不存在的成员。引用也是同理!subobject就是基类中有的成员,派生类继承...原创 2019-03-28 22:18:35 · 1317 阅读 · 0 评论 -
条款07:为多态基类声明virtual析构函数(悬挂指针)
重点:带多态性质的基类应该声明一个虚析构函数,如果类带有任何虚函数,它就应该拥有一个虚析构函数 类的设计目的如果不是作为基类使用,或者不是为了具备多态性,就不应该声明虚析构函数。多态性质的体现:使用基类的指针(引用)去调用派生类的对象。如下:使用一个base指针,指向derived对象,然后delete base指针,想要调用派生类的析构函数。此时把base的析构函数设置为virtual...原创 2019-04-21 09:53:38 · 144 阅读 · 0 评论 -
warning: control reaches end of non-void function
做题的时候遇到这个问题,显示的在创建二维vector的时候出错了,后来成查了查这个警告warning: control reaches end of non-void function它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。这时候,最好检查一下是否每个控制流都会有返回值。才发现return写到了for()循环的里面...原创 2019-02-27 11:16:15 · 5605 阅读 · 0 评论 -
【c++】size_t 和 size_type
为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsignedsize_t是全局定义的类型在stl中一些类中的函数的返回值是 size_type 但在不同的stl模版类中size_type代表的具体类型可能不一样 。所以在使用到了这一类型还是使vector<T>::size_type 这种模版类自己的类型,不需要关注...原创 2018-11-17 10:56:57 · 265 阅读 · 0 评论 -
c++二级指针
#include<iostream>using namespace std; int a = 3; int M = 5;/*使用一级指针 不能修改 指针的指向void changePointer(int* p){ p = &M ;}*/void changePointer(int** p){ cout<<"p的地址是:"<<...原创 2018-09-25 20:31:14 · 714 阅读 · 0 评论 -
声明、定义、初始化、赋值
变量的定义形式:首先是类型说明符,随后紧跟由一个或者多个变量名组成的类别,其中变量名以逗号隔开,最后以分号结束。例子:int sum,value,unsold;struct GraphNode{ int label; vector<GraphNode*> neighbors; GraphNode(int x):label(x){};};/*expe...原创 2018-11-29 22:48:05 · 1697 阅读 · 0 评论 -
c++参数传递【传引用的意义】
引用符号的位置是在变量之前。1、使用引用避免拷贝1.1拷贝大的类类型对象或者容器对象比较低效 1.2甚至有的类类型如IO类根本就不支持拷贝操作。当某种类型不支持拷贝操作,函数只能通过引用形参来访问该类型的对象。举个例子:我们准备编写一个函数比较两个string对象的长度,因为string对象往往会比较长,所以尽量避免直接拷贝它们。这时候传递引用形参是明智的选择,并且比较长度无须改变st...原创 2019-01-09 20:56:17 · 1164 阅读 · 0 评论