![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c/c++基础
文章平均质量分 78
c/c++基础
GT19930910
让我们一起来学习c/c++
展开
-
c++ Primer Plus读书笔记——作用域为类的常量和静态类成员
类常量有时候,使符号常量的作用域为类很有用。例如,类声明可能使用字面值30来指定数组的长度,由于该常量对于所有对象来说都是相同的,因此创建一个由所有对象共享的常量是一个不错的注意,有人可能认为可以这样写:class Bakery{private: const int Months = 12; double cost[Months]; ...}但是这样是行...原创 2018-11-04 17:28:24 · 251 阅读 · 0 评论 -
c++ Primer Plus读书笔记——函数指针
函数指针的基础知识完成一个函数指针,我们必须先完成下面的工作:1、获取函数地址2、声明一个函数指针3、使用函数指针来调用函数1、获取函数地址获取函数指针很简单,只要使用函数名(后面不必跟参数)即可。也就是说,如果think()是一个函数,则think就是该函数的地址。要将函数作为参数进行传递,必须传递函数名。一定要区分传递的是函数的地址还是函数的返回值:process(...原创 2018-11-03 14:41:20 · 245 阅读 · 0 评论 -
值得学习的C++项目开源
值得学习的C语言开源项目- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz2...转载 2019-02-27 09:24:46 · 714 阅读 · 0 评论 -
收集一些c/c++技术
下面是整理的一些c/c++方面的相关代码demo,后续将持续更新下去。这是单独稍微大一些的项目地址(给出博客地址,博客中附带项目github地址):https://blog.csdn.net/flayhighergt/article/category/8405197标题:扫雷小游戏 epoll聊天室 Qt+ffmpeg+sdl简单播放器下面是一整个项目地址(直接给出github地...原创 2023-06-06 09:57:29 · 614 阅读 · 0 评论 -
结构体里面的函数指针怎么初始化
/** * 为结构体中的指针数组赋值 */ #include <stdio.h> typedef struct test{ void (*p)(void); void (*q)(void); void (*y)(void);}test; void f1(void){ printf("f1\n");} void f2(voi...转载 2018-12-27 14:49:48 · 1400 阅读 · 0 评论 -
c++ Primer Plus读书笔记——类模板
下面是一段类声明:typedef unsigned long Itemclass Stack{private: enum { MAX = 10 }; Item items[MAX]; int top;public: Stack(); bool isempty() const; bool isfull() const; bool...原创 2018-11-08 20:52:15 · 204 阅读 · 0 评论 -
effective c++读书笔记——用内联模板函数替换类似函数的宏定义
我们来看下面宏定义: #define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b))这般长的宏有着太多缺点,光是想到它们就让人痛苦不堪。无论何时当你写出这种宏,你必须记住为宏中的所有实参加上小括号,否则某些人在表达式中调用这个宏时可能会遭遇麻烦。但是纵使你为所有实参加上小括号,看看下面不可思议的事情:int a = 5...原创 2018-11-09 12:35:37 · 420 阅读 · 0 评论 -
c++自动释放的指针之——auto_ptr和shared_ptr
假设我们使用一个用来塑模投资行为(例如股票、债券等)的程序库,其中各式各样的投资类型集成自一个root class Investment:class Investment { ... };//"投资类型"集成体系中的root class进一步假设,这个程序库通过一个工厂模式供应我们某特定的Investment对象:Investment* createInvestment();/...原创 2018-11-21 22:01:33 · 2242 阅读 · 0 评论 -
c++复制对象时勿忘其每一部分
设计良好之面向对象系统会将对象内部封装起来,只留两个函数负责对象拷贝(复制),那便是带着试切名称的copy构造函数和copy assignment操作符,称它们为copying函数,并说明这些“编译器生成版”的行为:将被拷贝对象的所有成员变量都做一份拷贝。如果你声明自己的copying函数,意思就是告诉编译器你并不喜欢缺省实现中的某些行为。编译器仿佛被冒犯似的,会以一种奇怪的方式回敬:当你的实...原创 2018-11-18 20:39:50 · 257 阅读 · 0 评论 -
令operator=返回一个reference to *this
关于赋值,我们可以把它写成连锁形式:int x, y, z;x = y = z = 15;赋值采用右结合律,所以上述赋值被解释为:x = (y = (z = 15));为了实现"连锁赋值",赋值操作符必须返回一个reference指向操作符的左侧实参。这是你为class实现赋值操作符时应该遵循的协议:class Widget {public:。。。 ...原创 2018-11-17 14:12:52 · 197 阅读 · 0 评论 -
extern用法总结
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明ex...转载 2018-11-12 21:29:30 · 175 阅读 · 0 评论