![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
隔竹月
这个作者很懒,什么都没留下…
展开
-
C++学习笔记之explicit关键字
explicit关键字的作用是用来修饰类的构造函数,表明该构造函数是显式的,禁止单参数构造函数的隐式转换。假如没有explicit:class myclassA;class myclassB{ myclassB(myclassA& para1, int ¶2);};myclassA obj1;myclassB obj2;obj2=obj1; 实原创 2018-01-27 20:13:16 · 188 阅读 · 0 评论 -
仿函数(functor)
仿函数本质是类而非函数,它内部对()操作符进行重载,使类的功能看起来更像是一个函数,下面的链接清晰地阐述了仿函数的作用: c++仿函数 functor原创 2018-08-10 20:21:42 · 600 阅读 · 0 评论 -
C++学习笔记之友元
类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为它的友元(friend)令其他类为友元class A{friend B; private: int a;};类B能访问类A中的private成员a令其他类的成员函数为友元class A{friend B:fun1(); private: int a;};原创 2018-01-16 15:24:55 · 214 阅读 · 0 评论 -
C++学习笔记之类类型
类的定义两个类即使成员完全相同,但名字不同,不属于同一个类class A{int a;void fun();};class B{int a;void fun();};A obj1;B obj2 = obj1;//error,obj1和obj2类型不同类的声明class A;前向声明:对一个类只声明不定义不完全类型:一个类在声明之后定义之原创 2018-01-16 16:56:44 · 161 阅读 · 0 评论 -
C++学习笔记之静态成员
静态成员的作用有时候一些成员不是打算由类的各个对象(类的实例)来各自维护,而是与类本身直接相关联例:一个银行账户类,可以实例化出很多个对象(很多客户)A,B,C……,但是像利率这种信息,是对大家一样同时又是不断变动的,静态成员的作用就体现出来了:大家共享一个可变信息声明静态成员class Account{public: static double rate原创 2018-01-16 19:14:42 · 127 阅读 · 0 评论 -
C++学习笔记之指针和const
指针本身是一个变量,本质上是一个存放其他变量的地址的变量。与const有关的指针可以分为3种:指向常量的指针常量指针指向常量的常量指针指向常量的指针指针本身的值(地址)可以修改(比如赋予新的地址,使之指向另一个变量),但指向的常量的值不能修改。const int a=1;int *ptr=&a;*ptr=2;//错误,指向的变量是个常量,不能修改原创 2018-01-16 20:27:35 · 128 阅读 · 0 评论 -
C++学习笔记之默认实参
默认实参的例子//所有形参有默认值int fun(int a=1,int b=2,int c=3){ return a+b+c;}//部分形参有默认值int fun(int a,int b=2,int c=3){ return a+b+c;}可以所有函数形参都赋予默认值,也可以只部分赋予,但是,一旦某个形参被赋予了默认值,它后面的所有形参都必须有默原创 2018-01-17 16:22:01 · 323 阅读 · 0 评论 -
C++学习笔记之顶层const和底层const
顶层const:表示变量本身是个常量,对任何数据类型适用,如算数类型(int、double),类,指针底层const:表示指向的变量是个常量,用于指针和引用指针类型既可以是顶层const,也可以是底层constint a=0;//顶层constint *const p1=&a;const int var=0;//底层constconst int *p2=&var;const int原创 2018-01-17 20:05:55 · 489 阅读 · 0 评论 -
C++学习笔记之auto类型说明符
把表达式的值赋给一个变量,要求在声明变量的时候清楚地知道表达式的类型,举个例子:int a=1,b=2;int c=a+b;//因为我们知道a+b是整型,所以我们把c也声明为整型auto是一种类型,和int、double等等类似,但它是一种“随机应变”的类型。C++11标准引入auto类型说明符,使编译器通过变量的初始值来推断变量类型,从而替我们分析表达式所属类型:int a=1,b=2;au原创 2018-01-17 21:54:07 · 928 阅读 · 0 评论 -
C++学习笔记之显示类型转换
隐式转换是编译器替我们完成的:double a=3.14;int val=a; //val的值为3显示转换或称强制类型转换,是我们告诉编译器:你别管我,我就是要这么转换。格式为:cast-name(expression)cast-name有这四种:static_cast、dynamic_cast、const_cast、reinterpret_caststatic_cast任何具有明确定义的类原创 2018-01-18 16:19:04 · 241 阅读 · 0 评论 -
C++学习笔记之内存分配
几个内存概念静态内存(staitc memory):保存局部static对象、类static数据成员、定义在任何函数之外的变量栈内存(stack):保存定义在函数内的非static对象自由空间(free store)或称堆内存(heap):存储动态分配(即程序运行时分配)的对象对象分配及销毁原则1. 分配在静态内存和栈内存的对象由编译器自动创建和销毁。2. 对于栈对象,仅在定义它的程序块运行时才存原创 2018-01-18 19:06:31 · 120 阅读 · 0 评论 -
C++学习笔记之shared_ptr指针
智能指针有两种:shared_ptr和unique_ptr,所谓“智能”,是说它们负责自动释放所指向的对象。两种智能指针的主要区别:shared_ptr允许多个指针指向同一个对象,而unique_ptr独占一个对象。(标准库还定义了一个weak_ptr的伴随类,指向shared_ptr所管理的对象)shared_ptr实际上是个类模板,需要提供模板实参使之成为一个类。默认初始化的智能指针保存着一个原创 2018-01-18 21:00:09 · 201 阅读 · 0 评论 -
C++学习笔记之基本IO类
理清IO的基本概念iostream是一个标准库,提供IO机制。iostream库包含两个类:istream和ostream,分别表示输入流和输出流。一个“流”就是一串长短不定的字符序列,从IO设备读出或写入IO设备,它表达的是随时间推移,字符顺序生成或消耗。cin是istream的一个对象,cout、cerr、clog是ostream的三个对象。cin(也称标准输入,standard input)原创 2018-01-19 15:05:56 · 176 阅读 · 0 评论