C/C++高级话题
「已注销」
北京大学计算机应用技术专业机器学习方向硕士研究生。
展开
-
函数指针
我们先来看一段C程序,如下:#include #include int MyCompare(const void *elem1, const void *elem2){ unsigned int *p1, *p2; p1 = (unsigned int *)elem1; p2 = (unsigned int *)elem2; return (*p1%10) - (*p2%10);原创 2015-03-05 13:14:24 · 432 阅读 · 0 评论 -
极客班GeekBand - C++第一次课程辅导 - 李建忠
极客班GeekBand - C++第一次课程辅导 - 李建忠极客班GeekBand - C第一次课程辅导 - 李建忠栈Stack VS 堆heap堆对象的空间分析栈对象的空间分析变量模型与使用课程总结栈(Stack) VS. 堆(heap)栈 由系统自动管理,以执行函数为单位空间大小编译时确定(参数+局部变量)函数执行时,系统自动分配一个stack函数执行结束时,系统立即自动回原创 2015-07-25 19:27:56 · 3784 阅读 · 1 评论 -
Effective C++阅读笔记(一)
0. 导读学习程序语言根本大法是一回事;学习如何以某种语言设计并实现高效程序设计是另一回事。 术语:声明式(Declaration):告诉编译器某个东西的名称和类型,但略去细节。签名式(Dignature):(函数)参数和返回类型。定义式(Definition):提供编译器一些声明式所遗漏的细节。初始化(Initialization):给予对象初值的过程。 对象初始化:default构造原创 2015-07-01 17:27:59 · 924 阅读 · 0 评论 -
C++文件操作(二)
/* 文件拷贝程序 即将src.dat拷贝到dest.dat 如果dest.dat原来就有,则原来的文件就会被覆盖*/#include #include using namespace std;int main(int argc, char * argv []){ if (argc != 3){ cout << "File name missing!" << endl;原创 2015-04-25 20:52:38 · 597 阅读 · 0 评论 -
C++文件操作(一)
/* 一、数据的层次:位 字节 域/记录 二、顺序文件:将所有的记录顺序输入文件。一个有限字符构成的顺序字符流。 三、C++标准库中:ifstream(文件读取) ofstream(文件写入) fstream(文件读取写入) 四、使用/创建文件的基本流程:1. 打开文件 2.读/写文件 3.关闭文件 五、建立顺序文件 #include ofstream ou原创 2015-04-25 20:30:51 · 774 阅读 · 0 评论 -
C++运算符重载(一)——加减
一、运算符重载为成员函数#include using namespace std;class Complex {public: double real; double imag; Complex(double r = 0.0,double i = 0.0); Complex operator+(const Complex&); Complex o原创 2015-04-01 22:58:24 · 2000 阅读 · 0 评论 -
构造函数 复制构造函数 类型转换构造函数 析构函数
关于题目中几个构造函数和析构函数的几段程序,主要在于知道什么时候调用各个函数。程序一:#include using namespace std;class Complex{public: double real; double imag; Complex(double r, double i) { real = r; imag = i; cout << "C原创 2015-03-23 15:38:34 · 681 阅读 · 0 评论 -
const
一段代码:#include using namespace std;int main(){ const int MAX_NUM = 731; const string EMAIL = "x-lion@xxx.edu.cn";// MAX_NUM = 130; // expression must be a modifiable lvalued int a, b; const原创 2015-03-07 19:14:49 · 497 阅读 · 0 评论 -
位操作
我们首先来看一段代码:#include using namespace std;int main(){ int a = 1118; int n = 9; cout > n) & 1) << endl; return 0;}我们再来看一段代码:#include using namespace std;int main(){ //<<左移操作 int a = 9;原创 2015-03-07 16:12:51 · 392 阅读 · 0 评论 -
引用
引用(reference)对象的别名。定义如下:type &id = object; 定义 &id为object的另一个名字。任何对id的操作都会转变为对object的操作。看下面一段代码:#include using namespace std;int n = 5;void swap(int& a, int& b) //C++中交换两个数字{ int temp = a; a原创 2015-03-08 13:13:52 · 945 阅读 · 0 评论 -
动态内存分配
我们来看几段代码:第一段:#include using namespace std;int main(){ int *p; int n = 100000; while (n--) { p = new int[100000]; } return 0;}第二段:#include using namespace std;int main(原创 2015-03-07 18:33:34 · 568 阅读 · 0 评论 -
函数的缺省参数
函数的缺省参数:C++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,那么调用函数的时候,若相应位置不写参数,参数就是缺省值。来看一段代码:#include using namespace std;int funcc(int a, int b = 3, int c = 1){ return a + b + c;}int main(){ cout << funcc(3原创 2015-03-08 11:08:44 · 3435 阅读 · 0 评论 -
重载函数
重载函数(overload function)和至少一个其他函数同名的函数。重载函数必须在形参的个数或者类型上有所不同。作用:函数的重载使得对完成相似功能的不同函数可以统一命名,较少了命名所花的心思。看下面一段代码:#include using namespace std;int Max(int a, int b){ return a > b ? a : b;}double原创 2015-03-08 10:50:56 · 505 阅读 · 0 评论 -
内联函数
inline function(内联函数) 如果可能的话,将在调用点展开函数。内联函数直接以函数代码代替了函数调用语句,从而避免了一般函数调用的开销。我们来看一段代码:#include using namespace std;inline int Max(int a, int b){ return a > b ? a : b;}int main(){ int a, b;原创 2015-03-08 10:30:20 · 512 阅读 · 0 评论 -
极客班GeekBand - C++面向对象高级开发 - 2
极客班GeekBand - C++面向对象高级开发 - 2极客班GeekBand - C面向对象高级开发 - 2讲师 - 侯捷复习Complex类的实现过程三大函数拷贝构造拷贝复制析构栈堆与内存管理Stack VS Heapstack objectsstatic local objectsglobal objects的生命期heap objects的生命周期new先分配memory再原创 2015-07-28 16:12:39 · 2110 阅读 · 2 评论