随笔分类 -  C/C++

摘要:* 0xABABABAB : Used by Microsoft's HeapAlloc() to mark "no man's land" guard bytes after allocated heap memory * 0xABADCAFE : A startup to this value 阅读全文
posted @ 2016-08-20 19:58 ARabbit 阅读(960) 评论(0) 推荐(0)
摘要:void func(string str){return;} 1.简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表)void(*pFunc)(string); 用法:pFunc = func; (*pFunc)("str"); 2.使用typedef更直观更方便。//形式2:typed 阅读全文
posted @ 2016-08-20 18:27 ARabbit 阅读(516) 评论(0) 推荐(0)
摘要:动态链接库 (DLL) 是作为共享函数库的可执行文件。 动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。 函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。 DLL 还有助于共享数据和资源。 多个应用程序可同时访问内存中单 阅读全文
posted @ 2016-08-20 13:09 ARabbit 阅读(564) 评论(0) 推荐(0)
摘要:C++程序有时需要调用其他语言编写的函数,最常见的是调用C语言编写的函数。像所有其他名字一样,其他语言中的函数名字也必须在C++中进行声明,并且该声明必须指定返回类型和形参列表。对于其他语言编写的函数来说,编译器检查其调用方式与处理普通C++函数的方式相同,但生成的代码有所区别。C++使用链接指示( 阅读全文
posted @ 2016-04-24 23:03 ARabbit 阅读(973) 评论(0) 推荐(0)
摘要:for_each()是个function template #include <algorithm>头文件说明 template<class _InIt, class _Fn1> inline void _For_each(_InIt _First, _InIt _Last, _Fn1& _Func 阅读全文
posted @ 2016-02-28 23:23 ARabbit 阅读(1338) 评论(0) 推荐(0)
摘要:string Arr[] = {"123", "123456", "12345", "12", "1"}; vector<string> vecStr(Arr, Arr + sizeof(Arr)/sizeof(string)); for (size_t i = 0, sz = vecStr.siz 阅读全文
posted @ 2016-02-28 19:12 ARabbit 阅读(215) 评论(0) 推荐(0)
摘要://find_if谓词使用 bool isShorter(const string &s1, const string &sz){ return s1.size() < sz.size(); } int main() { string Arr[] = {"123", "123456", "12345 阅读全文
posted @ 2016-02-28 18:12 ARabbit 阅读(313) 评论(0) 推荐(0)
摘要:bool isShorter(const string &s1, const string &sz){ return s1.size() < sz.size(); } int main() { string Arr[] = {"123", "123456", "12345", "12", "1"}; 阅读全文
posted @ 2016-02-28 18:07 ARabbit 阅读(400) 评论(0) 推荐(0)
摘要://数组引用形参 void print(int(&arr)[10]){ for (auto elem : arr){ std::cout << elem << ", "; } // for (int i = 0; i < 10;i++){ // cout << arr[i] << endl; // 阅读全文
posted @ 2016-02-28 17:58 ARabbit 阅读(363) 评论(0) 推荐(0)
摘要://参数传递之传递多维数组(C++中没有真正的多维数组,即数组的数组) void print(int(*matrix)[10], int rowSize){ for (int i = 0; i < rowSize; i++){ for (int j = 0; j < 10; j++) { /*std 阅读全文
posted @ 2016-02-28 17:55 ARabbit 阅读(622) 评论(0) 推荐(0)
摘要:所谓重载,就是重新赋予新的含义。函数重载是对一个已有的函数赋予新的含义,使之实现新的功能。 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一... 阅读全文
posted @ 2016-01-07 22:36 ARabbit 阅读(271) 评论(0) 推荐(0)
摘要:成员函数的重载、覆盖与隐藏 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。1.重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数... 阅读全文
posted @ 2016-01-04 23:39 ARabbit 阅读(209) 评论(0) 推荐(0)
摘要:关于从基类继承来的方法和属性的保护: --class Pig:public Animal {...}C++不仅允许你对在类里定义的方法和属性实施访问控制,还允许你控制子类可以访问基类里的哪些方法和属性。public: -是在告诉编译器:继承的方法和属性的访问级别不发生任何改变,即public仍可... 阅读全文
posted @ 2016-01-04 23:06 ARabbit 阅读(371) 评论(0) 推荐(0)
摘要:函数重载: 实质就是用同样的名字在定义一个有着不同参数但有着同样用途的函数。 注意: 1,参数个数的不同; 2,参数类型的不同; 3,重载不是真正的面向对象的特征(面向对象的三大特性是:封装性,继承以及多态),它只是可以简化编程工作的一种方案,而简化工作正是C++语言的全部追求... 阅读全文
posted @ 2016-01-04 22:10 ARabbit 阅读(185) 评论(0) 推荐(0)