随笔分类 - C、C++学习
摘要:参考文章:c++中union的使用 union使用方法 union即为联合,它是一种特殊的类。通过关键字union进行定义,一个union可以有多个数据成员。在任意时刻,联合中只能有一个数据成员可以有值。当给联合中某个成员赋值之后,该联合中的其它成员就变成未定义状态了。 赋值 在C/C++程序的编写
阅读全文
摘要:最近看Binder机制的时候看到一个unsigned类型数组中不仅可以存放unsigned int类型还可以存放结构体对象,感到十分惊奇,下面我们来看一下 uintptr_t类型和指针类型的区别 uintptr_t是C/C++语言中一个无符号整数类型,它的长度和指针类型相同,在32位平台上为4字节,
阅读全文
摘要:参考链接:https://blog.csdn.net/yc2zgh1314/article/details/51264963 https://www.cnblogs.com/duacai/p/13341422.html 先看有循环引用问题的代码: #include<iostream> using n
阅读全文
摘要:1、首先需要宏定义一下new运算符 #ifdef _DEBUG #define new new(_NORMAL_BLOCK,__FILE__,__LINE__) #endif // DEBUG 解释: new(a, b, c) T; 会被解释成一个函数调用operator new(sizeof(T)
阅读全文
摘要:只有一个参数的构造函数可以作为转换构造函数,默认情况下会发生隐式转换,但是如果你对转换构造函数加上了关键字explicit,它就不允许隐式转换,但是你可以通过static_cast等进行强制转换。 而且只允许一步类类型转换,什么意思呢? 比如一个类Str,它有一个构造函数,这个构造函数只需要一个参数
阅读全文
摘要:一、auto 划重点: 1、auto是推导不出来顶层const的(顶层const就是保证自己内存地址里面存放的值不会变,底层const保证的是所指向的值,值本身不会变) 2、想要auto推导出来的类型是一个引用,通过下面方式(a是变量名) auto &a; int a=3; int &b=a; au
阅读全文
摘要:当substring设置为char*的别名 typedef char *substring; 那么下面两个变量含义不同 const substring b; //常量指针 const char * c; //指向常量的指针 #include<bits/stdc++.h> using namespac
阅读全文
摘要:1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 a. 若两种类型的字节数不同,转换成字节数高的类型 b. 若两种类型的字节数相同,且一种有符号,一种无符号,则转换
阅读全文
摘要:Book.h #include <string> #include <iostream> using namespace std; class Book{ friend ostream & operator<<(ostream &c,Book &bk); friend ostream & opera
阅读全文
摘要:两种办法: https://blog.csdn.net/m15814478834/article/details/49902077 https://www.cnblogs.com/iriczhao/p/11710693.html QT 使用QDomDocument::setContent()读XML
阅读全文
摘要:方法一(只对QLabel有用)、 //label是QLabel的对象指针 ui->label->setScaledContents(true); 方法二(对两种都有用)、 QString imagepath = ":/images/btn.png"; QPixmap image0(imagepath
阅读全文
摘要:.h文件作用: 写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。 .cpp文件作用: 源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文
阅读全文
摘要:一、类模板 1、作用 建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。 2、语法 template<typename T> 类 template 声明创建模板 typename 表面其后面的符号是一种数据类型,可以用class代替 T 通用的数据类型,名称可以替换,通常为
阅读全文
摘要:C++另一种编程思想称为泛型编程,主要采用的技术就是模板 C++提供两种模板机制:函数模板和类模板。本片文章我们介绍一下函数模板。类模板看另外一篇C++类模板 一、函数模板 1、作用 建立一个通用函数,其函数返回值和形参类型可以不具体制定。用一个虚拟的类型来表示 2、语法 template<type
阅读全文
摘要:在多态中,通常父类中的虚函数是没有意义的,因为多态就是用父类类型的变量调用子类的方法,详细的可以看这个C++多态的使用 因此可以把虚函数变成纯虚函数,当类中有了纯虚函数,这个类也称为抽象类 纯虚函数语法:virtual 返回值类型 函数名(参数列表)=0; 抽象类的特点: 1、无法实例化对象 2、子
阅读全文
摘要:一、多态有静态多态和动态多态: 1、静态多态:函数重载和运算符重载属于静态多态,复用函数名 2、动态多态:派生类和虚函数实现运行时多态 二、静态多态和动态多态的区别 1、静态多态函数地址早绑定:在编译阶段确定函数地址 2、动态多态的函数地址晚绑定:运行阶段确定函数地址 三、动态多态满足条件 1、有继
阅读全文
摘要:菱形继承问题来源: #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; class A { public: int age; }; class B : public A { }; class C : publ
阅读全文
摘要:创造一个子类对象,默认情况下访问父类和子类中都有的成员函数会访问到子类的成员函数。如果想要访问父类的成员函数需要加上父类作用域 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; class people {
阅读全文
摘要:1、父类中原来是私有属性(private)在子类中都不可以访问(不管子类的继承方式是什么) 2、子类公有继承(public)父类 父类的公有属性(public)在子类中还是公有属性 父类的保护属性(protected)在子类中还是保护属性 3、子类保护继承(protected)父类 父类的公有属性(
阅读全文
摘要:原文:https://blog.csdn.net/u013130743/article/details/80806179 一、概念 指针从本质上讲是一个变量,变量的值是另一个变量的地址,指针在逻辑上是独立的,它可以被改变的,包括指针变量的值(所指向的地址)和指针变量的值对应的内存中的数据(所指向地址
阅读全文