随笔分类 -  C++

上一页 1 2 3 4 5 6 7 ··· 11 下一页
11
摘要:C++中有几处概念让人容易弄混,比如指针常量,常量指针;指针函数和函数指针,这些别的随笔中有过整理。 今天看下函数指针和typedef连用的情况: typedef int* (*Fun)(int* a, int* b); 这里的Fun实际上是一个类型,该类型是一个函数指针类型,该函数指针返回值是一个 阅读全文
posted @ 2020-03-11 22:13 心媛意码 阅读(173) 评论(0) 推荐(0)
摘要:#include "stdio.h" typedef void (*Fun)(char *ch1, char* ch2); //函数指针类型:指向参数为(void *p, char *ch),返回值为void *的函数 //外部宿主函数 void GetCallBack(Fun fun)//这里是用 阅读全文
posted @ 2020-03-11 21:51 心媛意码 阅读(391) 评论(0) 推荐(0)
摘要:接口类是一种特殊的抽象类. 抽象类: 类中至少含有一个纯虚函数. 抽象类的子类如果没有完全实现父类的纯虚函数,那么该子类也是一个抽象类. 接口类: 满足两个条件 (1)没有成员变量 (2)所有成员函数都为public且纯虚. 阅读全文
posted @ 2020-03-07 18:47 心媛意码 阅读(479) 评论(0) 推荐(0)
摘要:在学网络基础的时候听说过这个东西,今天真正用了下,发现自己一直理解的都不对. 我用点对点的思维去理解组播,闹了笑话.其实组播中的各成员的ip和port都是一样的,这样才能够保证一个人发送,别的成员都能够接收到. 组播是一种UDP(User Datagram Protocol,用户数据报协议)协议,利 阅读全文
posted @ 2020-03-05 22:27 心媛意码 阅读(1272) 评论(0) 推荐(0)
摘要:1.流程图总结: 2. 代码: //运行起来一个Sender.exe,和多个Receiver.exe,可以看到组播的效果.//Sender.cpp也可称为服务端 #include <WINSOCK.H> #include <stdio.h> #define HELLO_PORT 7905 #defi 阅读全文
posted @ 2020-03-05 22:25 心媛意码 阅读(3697) 评论(0) 推荐(0)
摘要:之前寻找dll的调用者,往往是通过从VS的属性中看有没有加载dll对应的lib,或者全局搜索"LoadLibrary()"的方法去找到调用它的地方. 一般是一个项目把dll的函数导出,另外的项目中去调用dll文件.而今天我看到了加载本项目中的dll到某个类中,通过该类(该类定义了一个GetInsta 阅读全文
posted @ 2020-03-03 12:31 心媛意码 阅读(145) 评论(0) 推荐(0)
摘要:1.资源: 可以通过搜索关键字; 如果关键字找不到,考虑是不是调用了外部的文件,比如exe或者dll文件。 2.函数: 如果一个函数是virtual函数,在本类中找不到,就看哪些类继承了本类,去它的子类中去寻找。 阅读全文
posted @ 2020-03-02 23:42 心媛意码 阅读(235) 评论(0) 推荐(0)
摘要:下图中包含的String类型,如果想要在别的文件中去访问的话: 1)需要include"ApiClient.hpp" 2)需要使用oatpp::web::client::ApiClient::String,因为这里的String是一层一层套起来的,你需要如此去访问. 当然如果定义DemoApiCli 阅读全文
posted @ 2020-02-27 21:20 心媛意码 阅读(267) 评论(0) 推荐(0)
摘要:虚函数指针,又称虚函数表指针,当类中存在虚函数时,就会存在虚函数指针,它用来指向虚函数表,而虚函数表中则存了虚函数的地址(虚函数表的长度等于虚函数的个数) 举个例子: class Test { public: virtual void VirFun1(); virtual void VirFun2( 阅读全文
posted @ 2020-02-09 21:12 心媛意码 阅读(421) 评论(0) 推荐(0)
摘要:突然对于编程有了顿悟的感觉,其实他的本质就是内存。比如静态成员函数只能够访问静态成员或者静态成员函数,为什么呢?因为静态成员函数位于代码区,静态成员位于全局区,静态成员函数去访问静态成员或者静态成员函数时能够直接找到它们,因为它们已经就在那里,不偏不倚。而非静态成员函数尽管也在代码区,但是要访问它需 阅读全文
posted @ 2020-02-09 15:43 心媛意码 阅读(169) 评论(0) 推荐(0)
摘要:这个里面介绍的比较细致。 说到组合时,一个对象中包含另一个类对象的情况被称为组合。 比如 class A; class B //组合对象 { public: A a; //被组合对象 } 说被组合对象和组合对象有着相同的生命周期,被组合对象是在组合对象创建的同时或者之后创建的,在组合对象销毁之前销毁 阅读全文
posted @ 2020-02-06 17:33 心媛意码 阅读(662) 评论(0) 推荐(0)
摘要:它有两种状态,Locked和unLocked状态。 1、如果互斥锁是锁定的, 就是某个特定的线程正持有这个互斥锁 2、如果没有线程持有这个互斥锁,那么这个互斥锁就处于解锁状态 每个互斥锁内部有一个线程等待队列,用来保存等待该互斥锁的线程。当互斥锁处于解锁状态时, 如果某个线程试图获取这个互斥锁, 那 阅读全文
posted @ 2020-02-04 16:58 心媛意码 阅读(300) 评论(0) 推荐(0)
摘要:this指针用来指向当前对象,但不是对象的一部分。 this作用域在类内部,当类的非静态成员函数访问类的非静态成员时,编译器自动将对象本身的地址作为隐含参数this传递给函数。 全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址。 阅读全文
posted @ 2020-02-03 23:18 心媛意码 阅读(110) 评论(0) 推荐(0)
摘要://有些情况下,想要明确地拒绝对象之间的拷贝,可以采用两种方式: //方式1: 将拷贝构造函数和赋值操作声明为private,且不去实现 class A { private: A(const A&); A& operator=(const A&); }; int main() { A a1; //报 阅读全文
posted @ 2020-01-28 17:15 心媛意码 阅读(157) 评论(0) 推荐(0)
摘要:子类私有继承会把父类的public和protected成员变成自己的private成员,而父类的private成员,子类是不可以访问的. 因为private成员是本类可以访问,子类和别的类不可以访问. 阅读全文
posted @ 2020-01-27 09:47 心媛意码 阅读(164) 评论(0) 推荐(0)
摘要:转载地址:https://www.cnblogs.com/JMLiu/p/7928425.html 一、主要讨论下面两个函数的区别: int& at() { return m_data_; } int at() { return m_data_; } 上面两个函数,第一个返回值是int的引用int& 阅读全文
posted @ 2020-01-26 20:18 心媛意码 阅读(760) 评论(0) 推荐(0)
摘要:私有继承可以实现 has a 的关系,也就是包含。 私有继承中: 1. 父类的 public 和 protected 成员在子类中变成了子类 private 的成员, 1.1 这就意味着从父类继承过来的这些成员(public/protected), 子类的成员函数可以调用之; 但是子类的对象就不能够 阅读全文
posted @ 2020-01-26 19:12 心媛意码 阅读(182) 评论(0) 推荐(0)
摘要:!和&&优先级: !a&&b: 由于!的优先级高于&&,因此左边的式子等价于 (!a) && b. 阅读全文
posted @ 2020-01-15 18:58 心媛意码 阅读(117) 评论(0) 推荐(0)
摘要:byte就是unsigned char是0-255,也就是我们所说的八位一个字节. 而char范围是-128~127,它的最高位表示符号位,这点要特别注意.比如0X09两者是一致的,而0Xd9两者就差远了 阅读全文
posted @ 2020-01-13 22:54 心媛意码 阅读(844) 评论(0) 推荐(0)
摘要:首先什么是static静态成员函数?静态成员函数不属于类中的任何一个对象和实例,属于类共有的一个函数。也就是说,它不能用this指针来访问,因为this指针指向的是每一个对象和实例。 对于virtual虚函数,它的调用恰恰使用this指针。在有虚函数的类实例中,this指针调用vptr指针,指向的是 阅读全文
posted @ 2020-01-11 19:55 心媛意码 阅读(539) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 11 下一页