C++
关于C++学习知识点
追随光、成为光
这个作者很懒,什么都没留下…
展开
-
C++ 常对象、常数据成员、常成员函数总结
常数据成员常数据成员必须使用初始化列表初始化来初始化,并且不能被更新 常数据成员必须初始化PS:类的数据成员使用初始化列表进行的初始化 才叫初始化,使用构造函数内部的语句初始化叫赋值常对象常对象可以调用常成员函数,不能调用非const成员函数;非const对象,可以调用普通成员函数和常成员函数 常对象成员函数不一定都是常成员函数,常对象的数据成员不一定都是数据成员 常对象一旦初始化,常对象的数据成员便不可允许修改 如果非要修改某个成员变量的话,PS:定义常对象有两种方法 1. .原创 2020-06-21 18:46:53 · 993 阅读 · 0 评论 -
三元光栅操作码
三元光栅操作码作用:按照不同的方式处理三种像素。当前填充像素源像素屏幕像素三元指的就是这三种了数据组成三元光栅操作码是 int32 类型,其高位字是布尔操作索引,低位字是操作码。布尔操作索引的 16 个位中,高 8 位用 0 填充,低 8 位是当前填充颜色、源图像和屏幕的布尔操作结果。原理对像素点的数值(二进制)进行布尔操作,来处理图像。并不是每一次的操作都需要三种像素。根据操作码来决定处理的像素和布尔操作类型实例逆波兰表达式一种运算表达式,将正常的表达式转换为逆波兰表达式转载 2020-06-10 21:59:44 · 988 阅读 · 0 评论 -
普通函数、构造函数、inline函数、友元函数为什么不能声明为虚函数
C++函数中那些不可以被声明为虚函数常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。1.为什么C++不支持普通函数为虚函数?普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2.为什么C++不支持构造函数为虚函数?这个原因很简单,主要是从语义上考虑,所以不支持。因为构造函数本来就是为了明确初始化对象成员才产生的,然而virtual function主要是为了再不完全了转载 2020-05-23 09:45:29 · 756 阅读 · 0 评论 -
C++ 11 创建和使用 unique_ptr
unique_ptr不共享它的指针。它无法复制到其他unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一unique_ptr,并且原始unique_ptr不再拥有此资源。我们建议你将对象限制为由一个所有者所有,因为多个所有权会使程序逻辑变得复杂。因此,当需要智能指针用于纯 C+...转载 2020-04-21 19:33:58 · 223 阅读 · 0 评论 -
C++ primer Plus 第十五章 友元、异常和其他
15.1友元类并非只有友元函数,还可以有友元类,友元类的所有方法都可以访问原始类的私有成员和保护成员。下面我们通过一个例子来讲解一下友元类定义TV类和Rmote类,分别作为电视机和遥控器的类由于遥控器可以控制电视机,即遥控器可以访问电视机的成员,所以要将Rmote类声明为TV的友元类,但是如果只是将Rmote类的一个成员函数声明为友元函数,则需要知道Rmote类的声明,所以TV类应...原创 2020-04-19 17:43:16 · 339 阅读 · 0 评论 -
C++ 文件输出与输入
文本文件输入1.必须包含头文件fstream2.需要声明一个或多个ofstream的对象,并以自己喜欢的方式对其进命名。3.使用open()方法将ofstream的对象和文件关联起来,使用完文件后使用close方法将其关闭。#include<iostream>#include<fstream>using namespace std;int main(...原创 2020-03-01 20:20:11 · 1640 阅读 · 1 评论 -
C++ primer Plus 第十四章 C++中的代码重用
14.1包含对象成员的类当我们在描述has-a问题时,我们可以使用类里包含一个类的方法来描述这种问题。例如,student类中有学生的姓名和分数,我们可以在student类创建一个string类的name对象,和valarray类(这个类类似于数组,但是功能比数组强大)的scores对象这种方法比较简单,可以直接在student类的成员函数里使用string类和valarr...原创 2020-04-17 10:40:32 · 309 阅读 · 0 评论 -
cin、cin.get()、cin.getline()、getline()的区别
详细见https://blog.csdn.net/a3192048/article/details/80303547转载 2020-04-14 19:32:41 · 186 阅读 · 0 评论 -
C++ primer Plus 第十七章——输入、输出和文件
17.1.1流和缓冲区C++程序把输入和输出看作字节流(若干字节组成的字符序列)。输入时,程序从输入流中抽取字节;输出时,程序将字节插入到输出流中。输入流中的字节可能来自键盘以及存储设备或其他程序输出流中的字节可以流向屏幕、打印机、存储设备或其他程序流充当了程序和流源或流目标之间的桥梁,打个比方说,水滴就是字节,水滴汇成的水流就是流,我们可以从水流中取水,也可以往水流中加水,也就是...原创 2020-04-15 21:07:56 · 766 阅读 · 0 评论 -
C++ primer Plus 第十三章:类继承
13.1一个简单的基类从一个类派生出另一个类的时候,原始类为基类,继承类为派生类。如 创建一个汽车的类class car{private: int mile;//里程public: car(int aa=0):mile(aa){} void display(){cout<<mile<<endl;}};13.1.1派生一个类...原创 2020-04-09 17:17:55 · 348 阅读 · 0 评论 -
C++ primer Plus 第十二章:类和动态内存分配
12.1动态内存和类12.1.1复习实例和静态类成员12.1.2特殊成员函数首先看这样一个例子#include <iostream>#include <cstring>using namespace std;class string1{private: char *str; int len;public: string1...原创 2020-04-05 17:09:00 · 323 阅读 · 0 评论 -
C++ primer Plus第十一章:使用类
11.1运算符重载运算符重载就是将参与运算符设置到用户自己定义的数据类型里,使我们自己定义的数据类型可以通过运算符来进行运算。如 重载加号 我们可以直接使我们的两个对象相加,而不是通过成员函数,将对象内部的成员变量相加。语法运算符重载函数有两种,一种是作为成员函数出现在类的声明里,一种是通过友元函数出现在类外。第一种的格式是这样的返回类型 operator 运算符(类的引用...原创 2020-04-02 15:22:34 · 139 阅读 · 0 评论 -
C++ primer Plus 第十章:对象和类
10.2.2 C++中的类类是一种将抽象转换未用户定义类型的C++工具,它将数据表示和操作数据的方法合成一个整洁的包。接口:一个共享框架,供两个系统交互时使用。1.访问控制使用类对象的程序可以直接访问类的公有部分,但只能通过公有成员函数访问对象的私有成员防止程序直接访问数据被称为数据隐藏。数据隐藏不仅可以防止直接访问数据,而且还让开发者无需了解数据是如何被表示的。...原创 2020-04-01 18:31:26 · 211 阅读 · 0 评论 -
C++ primer Plus 第九章:内存模型和名称空间
9.1单独编译C++鼓励程序员将组件函数放在独立的文件中。可以将结构的声明放入头文件中,使用和改写的时候只需要载入头文件和修改头文件即可。于是原来的程序就被分成三部分:头文件:包含结构声明和使用这些结构的函数的原型。源代码文件:包含与结构相关的函数的代码源代码文件:包含调用与结构相关的函数的代码头文件一般放:函数原型,使用#define和const定义的符号常量,结构声...原创 2020-03-31 12:13:36 · 266 阅读 · 0 评论 -
C++ primer Plus 第八章:函数探幽
1.为什么要使用内联函数?执行函数调用指令的时候,程序将在函数调用后立即储存该指令的内存地址,并将函数参数复制到堆栈,跳到标记函数起点的内存单元,执行函数代码,然后条回到保存的那条指令的内存地址。这意味着执行函数要来回的跳跃位置,所以执行函数需要一定的开销。而内联函数,编译器会将它的函数代码替换相关的函数调用。(这一过程在编译的时候实现,并不使用程序运行时候的时间,因此提高了函数的效率)...原创 2020-03-29 10:53:01 · 310 阅读 · 0 评论 -
c++ 类的学习(3)
运算符重载什么式运算符重载呢?在c++里对于两个整型变量a和b,有a+b,含义是将a+b加起来,对于对象呢,我们可以重载‘+’的含义,从而可以使对象a,b,相加,比如A类是描述复数的类,a,b是A类的两个对象,我们可以使用a+b来求出两个复数的相加结果。简单来讲运算符重载就是 程序员可以自己 定义 自定义类型的数据结构的加减等操作。不能重载的运算符:"." 、".*"、"::"、"?:...原创 2020-03-21 15:56:47 · 401 阅读 · 0 评论 -
C++ 模板
函数模板函数模板就是创建一个通用功能的函数,支持多总不同形参,简化重载函数的函数体设计举个例子int abs(int x){ return x < 0? -x : x;}double abs(double x){ return x < 0? -x : x;}这两个函数只是参数不同,其他都是一样的。可以用函数模板来简化templa...原创 2020-03-21 15:56:21 · 165 阅读 · 0 评论 -
C++ 类的学习(2)
类的友元友元是C++提供的一种破坏数据封装和数据隐藏的机制,通过将一个模块声明为另一个模块的友元,一个模块能够引用另一个模块中本是被隐藏的信息。为啥需要友元呢?有时候我们需要不断的提取对象中的成员的数据,而提前成员的数据,而只有类本身的成员函数才可以访问类的成员,在很多次使用成员函数的过程中,会造成时间的浪费,而使用友元的话,我们可以直接访问某个类的成员变量。友元函数友元函数是在类...原创 2020-03-21 15:55:58 · 231 阅读 · 0 评论 -
C++ 类的学习
一、类和对象的定义1.类的语法形式class 类名称{public: 公有成员(外部接口)private: 私有成员protected: 保护型成员};公有成员:类与外部的接口,任何外部函数都可以访问类内的公有数据类型和函数私有成员:只允许本类的对象里的成员访问保护成员:在继承和派生上与私有成员有轻微差别class clock{ ...原创 2020-03-21 15:55:44 · 631 阅读 · 0 评论 -
c++类学习过程中的一些知识点
成员变量:类里定义的变量,可以在类里所有的函数里使用这些变量本地变量:函数里定义的变量class A{private: int a;public: int Fun();};int A::Fun(){ int fun; a=1; fun=2; return fun;}成员变量: a本地变量: fun2.隐藏指针clas...原创 2020-03-21 15:55:18 · 160 阅读 · 0 评论 -
C++ string 类的学习(不断更新)
string类是什么?string类是由头文件string支持的,用于处理字符串的类string类常用构造函数1.string();//默认构造函数,建立一个长度为0的串例:string s1(s1为长度为0的串,可以用cin>>s1的方式将字符串(不含空格)存入s1,string的长度随着所存储的字符串的长度变化而变化,所以不用担心是否越界)2.string(...原创 2020-02-23 17:18:53 · 142 阅读 · 0 评论 -
C++ 中虚函数的用法
用法一:#include<iostream>using namespace std;class A{public: virtual void display(){cout<<"A"<<endl;}};class B:public A{public: void display(){cout<<"B"<<...原创 2020-02-25 14:06:06 · 516 阅读 · 0 评论 -
C++学习之头文件
头文件的定义:头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。 .cpp就是你写的程序文件。例如我们在使用类时候,需要用到头文件,将类的声明放在头文件里,然后将源代码放在对应的cpp文件里例如a.h,里面写类声明或者函数的声明。//a.hclass fun//声明一个类...原创 2020-02-18 16:15:44 · 197 阅读 · 0 评论