
C++
NekoSheep
希望头发永远浓密
展开
-
[Oh My C++ Diary]operator++()和operator++(int)的区别
很久以前(八十年代),没有办法区分++和–操作符的前缀与后缀调用。这个问题遭到程序员的报怨,于是C++语言得到了扩展,允许重载increment 和 decrement操作符的两种形式。然而有一个句法上的问题,重载函数间的区别决定于它们的参数类型上的差异,但是不论是increment或decrement的前缀还是后缀都只有一个参数。为了解决这个语言问题,C++规定后缀形式有一个int类型参数,当...转载 2020-05-03 21:41:00 · 278 阅读 · 0 评论 -
[Oh My C++ Diary]类继承和类组合(内嵌类)初始化的不同
为了说明方便,暂时设有下面三个类:public: A(int i); private: int a; }; class B { public: B(int i); private: int b; }; class C:public A { public: C(int i,int j); private:...转载 2020-04-23 23:13:36 · 246 阅读 · 0 评论 -
[Oh My C++ Diary]#ifndef / #define / #endif 使用详解
想必很多人都看过“头文件中的 #ifndef / #define / #endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef / #define / #endif 这些代码?其实“被重复引用”是指一个头文件在同一个cpp文件中被...转载 2020-02-10 15:22:50 · 138 阅读 · 0 评论 -
[Oh My C++ Diary]带参数的main()函数
函数原型为:int main(intargc,char *argv[])第一个整型参数指明在以命令行方式执行本程序时所带的参数个数(包括程序名本身,故argc的值至少为1);第二个参数为一个字符型指针数组(其中第1个下标变量argv[0]指向本程序名,接下来的下标变量argv[1],argv[2]…等分别指向命令行传递给程序的各个参数),用来存放命令行中命令字及各个参数的字符串。Exa...原创 2020-02-06 18:39:47 · 166 阅读 · 0 评论 -
[Oh My C++ Diary]函数重载
函数重载函数重载,指的是一组参数和返回值不同的函数共用一个函数名。函数重载使一个函数名具有多种功能,即具有“多种形态”,称这种形态为多态性。当某个函数中调用到重载函数时,编译器会根据实参的类型去对应地调用相应的函数。Example:#include <iostream>using namespace std; int abs(int x){ retur...原创 2020-02-06 18:33:37 · 144 阅读 · 0 评论 -
[Oh My C++ Diary]结构体变量的声明
(1)先定义结构体类型,再定义结构体类型变量。例如,日期类型可以定义为struct Date{ int da_year; int da_mon; int da_day;}; Date yesterday, today, tomorrow; //说明了3个日期类型的变量:yesterday、today和tomorrow...原创 2020-02-06 16:20:11 · 279 阅读 · 0 评论 -
[Oh My C++ Diary]\t \n \r的用法
\t tab\n next line\r return\t:水平制表(跳到下一个Tab位置)\r:回车,将当前位置移到本行开头\n:换行\r:回车,相当于光标回到本行首位置,不会换行;另外有一个\n,换行,表示光标换到下一行;因此在windows下通常使用\r\n,表示回车换行,即光标到第二行的首位置,相当于按了键盘上的Enter键(有些是标为return键)\t: 水平制表符,...转载 2020-02-06 16:04:19 · 415 阅读 · 0 评论 -
[Oh My C++ Diary]内联函数
内联函数内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。1. 函数定义 内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用i...转载 2020-02-06 15:10:13 · 284 阅读 · 0 评论 -
[Oh My C++ Diary]怎样用cmd运行exe控制台程序
方法一进入.exe文件所在的文件夹,如下图所示:按住键盘Shift键,鼠标在该文件夹的空白区域单击右键,系统弹出如下图所示的对话框:选择对话框中的“在此处打开命令窗口”,单击后调出cmd命令提示符程序,在程序中输入目标程序的名字(不包含后缀),输入完毕回车,待程序运行完毕后就可以在cmd命令提示符窗口中查看目标程序的运行结果,如下图所示:方法二点击“开始”,然后在搜索框中输入“c...转载 2020-02-06 14:40:44 · 448 阅读 · 0 评论 -
[Oh My C++ Diary]Main函数参数argc,argv如何传入
方法1.C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进...转载 2020-02-06 14:27:50 · 258 阅读 · 0 评论 -
[Oh My C++ Diary]return 1和return 0的区别
return 0 代表程序正常退出,return 1代表程序异常退出!return -1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;使用return 语句可以返回一个变量内的值或一个指针,也可用return 0,表示返回为空。return 代表调到函数外,return 0代表函数正常终止return 1代表函数非正常终止return 关...转载 2020-02-06 14:11:22 · 1236 阅读 · 0 评论 -
[Oh My C++ Diary]善用三目运算符(a?b:c)
三目运算符——a?b:c即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:表达式1 ? 表达式2 : 表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。a? b : c可以理解为:if(a) b;else c;Ex...原创 2020-02-05 17:29:02 · 329 阅读 · 0 评论 -
[Oh My C++ Diary]一元作用域运算符::的使用
“::”是作用域运算符,是C++语言中优先级最高的运算符。 它可以用于代码块的作用域,在函数内(包括main函数哟!)如果有一个与全局变量重名的变量,可以用 ::a 的形式访问这个全局变量。(说明如果不用::,默认访问函数内的局部变量,因为局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量)举个例...原创 2020-02-04 15:02:51 · 603 阅读 · 0 评论 -
[Oh My C++ Diary]用cout输出时后endl的使用
"endl"是"end line"的缩写,意为“结束此行”,即换行。endl实际上有两个操作:1. 换行2. 对缓冲流进行冲刷(清空缓存区),使得流中所有剩余字符被写入输出序列...原创 2020-02-03 13:58:29 · 361 阅读 · 0 评论 -
[Oh My C++ Diary]头文件使用之math.h与cmath
“math.h”是C语言中的数学函数库“cmath”是C++中有对应相同作用的头文件C++中两个头文件都可以使用,C++向C兼容。原创 2020-02-03 13:22:04 · 1101 阅读 · 0 评论 -
[Oh My C++ Diary]用cout输出流保留输出小数位数的方法
首先,保留小数位数的功能需要头文件iomanip,io代表输入输出,manip是manipulator(操纵器)的缩写。 在输出数字前面用cout<<fixed<<setprecision(X)<< 就可以了,其中X是所需要保留小数的位数。fixed表示小数计数法,s...原创 2020-02-02 22:58:21 · 1301 阅读 · 0 评论