![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
紫陌vv
这个作者很懒,什么都没留下…
展开
-
read /proc/net/dev 读不完整的问题
原实现:#define DEV_BUF_SIZE (1024*10)int get_interface_pkg_stats(char * eth, accessPoint_Statistics_t *pAccessPoint_Statistics){ int fd = open("/proc/net/dev", O_RDONLY | O_EXCL); if (-1 == fd) { printf("/proc/net/dev not原创 2020-08-20 16:09:13 · 670 阅读 · 0 评论 -
C++的类
面向对象编程的四大特性之一,就是封装。在C++中,将数据和对数据的操作封装到一个结构体中,这个结构体称为“类(class)”。class Rectangle{ private: int width, height; //数据 public: int area(); //对数据的操作};因此,类的成员包含成员变量和成员函数。类的成员有三种属性:public、protected、private(默认属性)。对应三个类访问修饰符:.原创 2020-07-24 15:30:08 · 218 阅读 · 0 评论 -
面向对象编程的四大特性(C++)
面向对象编程的四大特性:封装 抽象 继承 多态 封装 C++中,将数据和对数据的操作(函数)封装成一个叫“类(class)”的结构体。 class Rectangle{ protected: int width, height; //数据 public: Shape(int a=0, int b=0) { width=a; height=b; }...原创 2020-07-24 15:02:13 · 1354 阅读 · 0 评论 -
回调函数(入门篇)
首先,我们回忆一下,标准库函数printf是如何被我们调用的。1. 包含库函数所在的头文件 #include <stdio.h>2. 调用printf,例如printf("Hello World");3. 编译、运行,屏幕上输出了Hello World。搞定!很好,我们就是这样调用标准库函数的。现在,假设有另外一个库函数myLib_ancient_times,它在被调用时,需要传入一个函数指针。myLib_ancient_times(funPtr_modern_times);原创 2020-05-11 14:08:45 · 559 阅读 · 0 评论 -
实时显示系统时钟——使用C++类实现
本文提供的代码可以准确显示实时的时间,并且每一秒都会显示一次。但仍然略有延迟,原因是代码运行消耗的时间并没有完全考虑进去。#include <iostream>#include <time.h>#include <iomanip> //setw(), setfill()#include <thread>#include <chro...原创 2019-08-09 16:31:55 · 3345 阅读 · 0 评论 -
函数返回栈内存的地址——不可以
函数不要返回栈内存的地址,例如下面代码中的return &a。#include <iostream>#include <cstring>using namespace std;class A { public: A() { name = new char[10]; strcpy(name,"sheng"); cout<&...原创 2019-08-02 14:07:44 · 722 阅读 · 0 评论 -
C++ 返回值优化(N)RVO
(N)RVO: (Named) Return Value Optimization(具名)返回值优化声明:本文中的RVO只是表示函数返回对象是非具名的。以及下文中一律以RVO表示具名或非具名返回值优化。(N)RVO的适用场景不得不返回类对象的情况下,由于作为返回值的类对象需要调用构造函数、拷贝构造函数、析构函数,带来的开销。这部分开销可以通过返回值优化机制来消除。(默认C++编译器是打开R...原创 2019-08-02 13:34:25 · 382 阅读 · 0 评论 -
函数返回类对象的引用——不可以
关于函数返回值为类对象:可以返回栈对象 (因为有返回值优化RVO机制)不可以返回栈对象的地址不可以返回栈对象的引用?#include <iostream>using namespace std;class A { public: A() { cout<<this<<" constructor"<<endl;...原创 2019-08-02 17:30:52 · 419 阅读 · 0 评论 -
static的作用
static的作用在函数体内,static变量在函数被多次调用时,其值保持不变。在模块内(函数体外),static变量为本地全局变量,即只能被该模块内的函数访问。在模块内,static函数被限制只能在模块内被调用,不能被模块外调用。举例//待填充。。。引申:static全局变量 vs. extern全局变量示例一#include <iostream>using n...原创 2019-07-05 15:54:29 · 349 阅读 · 0 评论 -
关键字explicit
explicit作用于类的单参数构造函数。作用是禁止构造函数参数进行隐式类型转换分析:只能用于构造函数只能用于含有单个参数的构造函数。因为无参数肯定不会做类型转换,多个参数默认要求显示类型转换。但是当构造函数有多个参数,只有一个参数没有默认值时,也会支持隐式类型转换,因此这时候explicit也时有效的。很多C++库中都使用了explicit,抑制隐式类型转换可以避免难以察觉的逻辑错误。...原创 2019-07-04 15:43:41 · 179 阅读 · 0 评论