c++
文章平均质量分 61
红颜若雪
喜欢c++的小白
展开
-
2.5构造函数语义续(编译器什么时候会帮我们生成默认构造函数) 笔记
一.父类带缺省构造函数,子类没有任何构造函数时 看一段代码: class Parent { public: Parent() { cout << "Parent" << endl; } }; class Child :public Parent { public: }; int main() { Child ch; return 0; } 打开vs开发人员命令提示符切换到main.obj所在目录,执行 dumpbin /all main.ob原创 2020-06-02 20:16:36 · 167 阅读 · 0 评论 -
2.4构造函数语义(编译器什么时候会生成默认构造)笔记
一.什么是默认构造函数 默认构造函数(缺省构造函数):没有参数的构造函数; 二.编译器什么时候会为我们生成默认构造函数 传统认识认为:如果我们自己没定义任何构造函数,那么编译器就会为我们隐式自动定义 一个默认的构造函数,我们称这种构造函数为:“合成的默认构造函数”. 其实不是这样的,只有在必要的时候,编译器才会为我们合成出来,而不是必然或者必须为我们合成出来。 必要的时候 是什么时候呢? 1.我们先看一段代码: class TestA { pub...原创 2020-05-31 19:49:01 · 233 阅读 · 0 评论 -
2.3 this指针的调整(笔记)
一.同时继承多个基类 先看一段代码: #include <iostream> using namespace std; class A { public: int a; A() { printf("A::A()的this指针是:%p!\n", this); } void funcA() { printf("A::funcA()的this指针是:%p!\n", this); } }; class B { public: int b; B() { pri.原创 2020-05-25 18:03:28 · 195 阅读 · 0 评论 -
2.2对象结构的发展和演化(笔记)
(1)非静态的成员变量(普通成员变量)跟着类对象走(存在对象内部),也就是每个类对象都有自己的成员变量; 下面这个类占8字节 class A { public: int a; int b; }; (2)静态成员变量跟对象没有什么关系,所以肯定不会保存在对象内部,是保存在对象外面(表示所占用的内存空间和类对象无关)的。 再加入一个静态成员之后,类还是8个字节,说明静态成员不会储存在对象...原创 2020-05-04 13:08:53 · 104 阅读 · 0 评论 -
2.1类对象所占用的空间(笔记)
一.空类所占内存 空类所占内存为1字节 要在内存中存在就必须占一个字节,因为一个地址指向的空间至少是一个字节.一会我们将进一步验证为什么是一个字节 #include<iostream> using namespace std; class A { public: }; int main() { A a; int iLen = sizeof(a); cout <&...原创 2020-05-02 11:56:10 · 331 阅读 · 0 评论 -
如何判断一个数的二进制中1的个数(num &= (num - 1))
//可以用下面的方法 int count_one(int num) { int count = 0; //记录1的个数 while (num) { ++count; num &= (num - 1); } return count; }使 num=10;num=10= 1010Bnum-1=9= 1001B执行:num&=(num-1); //num=...原创 2018-05-05 19:48:11 · 3889 阅读 · 0 评论 -
linux服务器编程入门(一) 实现最简单的linux服务端
最进在学习linux网络编程,就来做一些笔记,防止自己忘记加深印象。 1.创建监听的套接字 /* 1.创建监听的套接字 用到的函数 int socket(int domain, int type, int protocol); 第一个参数 指定一个一个地址协议 我们这里填AF_INET,代表ipv4 第二个参数 指定socket类型。新套接口的类型描述类型,如TCP(SOCK_STR...原创 2019-06-02 11:19:34 · 2777 阅读 · 0 评论