C++
文章平均质量分 65
DevCsdner
行走在编程的道路上。。。
展开
-
Ubuntu安装ARM交叉编译器
【代码】Ubuntu安装ARM交叉编译器。原创 2023-12-18 14:31:37 · 680 阅读 · 0 评论 -
CentOS 8关闭图形界面
CentOS 8关闭图形界面## 查看默认的启动方式# multi-user.target: analogous to runlevel 3# graphical.target: analogous to runlevel 5systemctl get-default# 修改启动方式systemctl set-default multi-user.target原创 2021-09-04 16:42:04 · 2313 阅读 · 0 评论 -
Linux GCC编译器使用
Linux GCC编译器使用gcc编译器gcc的工作流程gcc常用参数Linux静态库和共享(动态)库库的介绍使用库有什么好处库制作完成后, 如何给用户使用静态库(static library)静态库的制作静态库的使用静态库的优缺点共享库(shared library)/动态库共享库的制作查看共享库中内容共享库的使用分析为什么在执行的时候找不到`libtest2.so`库如何让系统找到共享库共享库的特点gcc编译器gcc的工作流程gcc编译器将c源文件到生成一个可执行程序,中间一共经历了四个步骤:四原创 2021-08-22 21:12:04 · 480 阅读 · 0 评论 -
c++ 输入输出流
c++输入和输出流标准IO流标准输入流标准输出流字符输出格式化输出使用流对象的有关成员函数控制符格式化输出文件读写写文件读文件标准IO流标准I/O对象:cin,cout,cerr,clogcout流对象cout是console output的缩写,意为在控制台(终端显示器)的输出。强调几点。cout不是C++预定义的关键字,它是ostream流类的对象,在iostream中定义。 顾 名思义,流是流动的数据,cout流是流向显示器的数据。cout流中的数据是用流插入 运算符“<<”顺原创 2021-08-22 17:40:35 · 312 阅读 · 0 评论 -
C++ 异常使用
C++ 异常C++ 异常c++异常机制相比C语言异常处理的优势异常严格类型匹配栈解旋(unwinding)异常接口声明异常变量生命周期异常的多态使用系统标准异常标准库标准异常类的具体描述:标准异常使用C++ 异常在C语言的世界中,对错误的处理总是围绕着两种方法:一是使用整型的返回值标识错误;二是使用errno宏(可以简单的理解为一个全局整型变量)去记录错误。当然C++中仍然是可以用这两种方法的。这两种方法最大的缺陷就是会出现不一致问题。例如有些函数返回1表示成功,返回0表示出错;而有些函数返回0表示成原创 2021-08-22 10:44:40 · 263 阅读 · 0 评论 -
C++ 模板总结
C++模板模板概论函数模板和普通函数区别模板概论c++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。c++提供两种模板机制:函数模板和类模板类属 - 类型参数化,又称参数模板总结:模板把函数或原创 2021-08-21 18:02:26 · 176 阅读 · 0 评论 -
C++ 多态
C++ 多态C++ 多态静态联编动态联编静态多态动态多态多态原理多态案例 - 计算器案例纯虚函数和抽象类虚析构和纯虚析构向上类型转换和向下类型转换重载、重写、重定义多态案例2 - 电脑组装案例C++ 多态静态联编动态联编静态多态在编译阶段绑定地址,地址早绑定,静态联编。动态多次在运行阶段绑定地址,地址晚绑定,动态联编。静态多态函数重载(函数名相同,函数列表不同),运算符重载动态多态先有继承关系父类中有虚函数,子类重写父类中的虚函数父类的指针或引用 指向子类的对象class原创 2021-08-05 22:54:46 · 797 阅读 · 4 评论 -
C语言函数调用模型
函数调用模型函数调用流程调用惯例函数参数的传递顺序和方式栈的维护方式函数变量传递分析函数调用流程栈(stack)是现代计算机程序里最为重要的概念之一,几乎每一个程序都使用了栈,没有栈就没有函数,没有局部变量,也就没有我们如今能见到的所有计算机的语言。在解释为什么栈如此重要之前,我们先了解一下传统的栈的定义:在经典的计算机科学中,栈被定义为一个特殊的容器,用户可以将数据压入栈中(入栈,push),也可以将压入栈中的数据弹出(出栈,pop),但是栈容器必须遵循一条规则:先入栈的数据最后出栈(First I原创 2021-08-04 21:50:40 · 192 阅读 · 0 评论 -
C++ 继承
继承继承继承方式公共继承保护继承私有继承总结继承减少重复的代码,提高代码复用性。语法:class 子类 : 继承方式 父类News 子类 派生类BasePage 父类 基类继承方式公共继承父类中公共权限,子类中变为公共权限父类中保护权限,子类中变为保护权限父类中私有权限,子类访问不到保护继承父类中公共权限,子类中变为保护权限父类中保护权限,子类中变为保护权限父类中私有权限,子类访问不到私有继承父类中公共权限,子类中变为私有权限父类中保护权限,子原创 2021-08-01 20:07:36 · 130 阅读 · 2 评论 -
C++ 自定义字符串类型
C++ 自定义字符串类型myString.h头文件#pragma once#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class MyString{ //左移运算符友元 friend ostream& operator<<(ostream & cout, MyString & str); //右移运算符 友元 friend istream&a原创 2021-07-29 22:01:51 · 664 阅读 · 0 评论 -
C++ 运算符重载
运算符重载加号运算符重载左移运算符重载对于内置的数据类型,编译器知道如何进行运算,但是对于自定义数据类型,编译器不知道如何运算,利用运算符重载 可以让符号有新的含义。定义重载的运算符就像定义函数,只是函数的名字为operator@,其中@代表被重载的运算符。运算符是一元还是二元取决于运算符函数中参数的个数。全局函数(一个参数是一元,两个参数是二元)成员函数(一元没有参数、二元一个参数,此时该类的对象用作左值)不要滥用运算符重载,除非有需求,不能对内置数据类型进行重载 。加号运算符重载利用原创 2021-07-25 21:58:26 · 153 阅读 · 0 评论 -
C++ 友元函数
友元函数友元函数全局函数作为友元函数类作为友元类类中的成员函数作为友元函数友元函数全局函数作为友元函数利用friend关键字让全局函数goodGay作为本类好朋友,可以访问私有成员friend void goodGay(Building * buliding);#include <string>class Building{ //利用friend关键字让全局函数,goodGay作为本类友元,可以访问类的私有成员 friend void goodGay(Building *原创 2021-07-25 19:34:22 · 131 阅读 · 2 评论 -
C++ 常对象和常函数
常对象和常函数常对象和常函数常函数常对象常对象和常函数class Person{public: Person(int age) { this->m_Age = age; } //常函数 : 修饰成员函数中的 this指针,让指针指向的值不可以修改 void showPerson() const { //m_Age = 100; m_A = 100; //this指针本质为:Person * const this ,即this指向不能改变,而指针指向的值可以改原创 2021-07-25 17:20:22 · 139 阅读 · 0 评论 -
C++ this指针
this指针解决名称冲突隐式加在每个成员函数中this指针 指向 被调用的成员函数 所属的对象*this 就是本体,代表的person对象本身class Person{public: Person(int age) { //用途1 :解决名称冲突 this->age = age; } //this指针 隐式加在每个成员函数中 bool compareAge(Person &p) { if (this->age == p.age) {原创 2021-07-25 16:24:54 · 59 阅读 · 0 评论 -
C++构造函数梳理
C++构造函数梳理构造函数构造函数分类构造函数的调用拷贝构造函数的调用时机构造函数使用规范深拷贝浅拷贝构造函数#include <iostream>using namespace std;class Person{public: //构造函数 Person(); //析构函数 ~Person();private:};//构造函数 //1. 没有返回值 不用写void//2. 函数名 与 类名相同//3. 可以有参数 ,可以发生重载//4. 构造函原创 2021-07-24 22:00:34 · 73 阅读 · 0 评论 -
C++ 静态成员及单例模式 2021-07-22
静态成员静态成员变量所有对象都共享同一份数据编译阶段就分配内存类内声明、类外初始化访问方式有两种:通过对象访问、通过类名访问静态成员变量也是有访问权限静态成员函数所有对象都共享同一份函数静态成员函数 只可以访问 静态成员变量,不可以访问非静态成员变量静态成员函数也是有访问权限的静态成员函数 有两种访问方式:通过对象 、通过类名#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace st原创 2021-07-22 22:20:25 · 120 阅读 · 0 评论 -
C++ 构造函数初始化列表
构造函数初始化列表法一:class Person {public: int pa; int pb; int pc; //使用有参构造 Person(int a, int b, int c) { pa = a; pb = b; pc = c; } };void test(){ //传递初始值 Person p(10,20,30); cout << "pa = " << p.pa << endl; // 10 cou原创 2021-07-22 21:20:01 · 156 阅读 · 0 评论 -
C++使用Demo计算立方体
计算立方体体积#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;/*设计立方体类(Cube),求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),分别用全局函数和成员函数判断两个立方体是否相等。*/class Cube{public: //设置长宽高 void setL(int l) { m_L = l; } void se原创 2021-07-19 22:16:55 · 383 阅读 · 0 评论 -
C++封装及访问权限浅析
C++封装封装C语言中的封装C++的封装封装的效果访问权限封装封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。C语言中的封装#include <stdio.h>struct Person { char name[64]; int age;};void PersonEat(struct Person* p){ printf("%s在吃人饭\n", p->name);}struct Dog { c原创 2021-07-19 21:55:35 · 307 阅读 · 0 评论 -
C++方法重载及调用C语言函数
方法重载及调用C语言函数函数重载条件函数重载中参数使用引用编译器内部实现C++调用C语言函数方式一方式二函数重载条件在同一个作用域函数名称相同参数个数、类型、顺序不同加const与不加const的引用可以作为重载的条件void func(){ cout << "func()调用" << endl;}void func(int a){ cout << "func(int a)调用" << endl;}void func(do原创 2021-07-19 14:11:06 · 282 阅读 · 0 评论 -
C++ 内联函数
宏的缺陷必须要加括号保证运算完整//宏缺陷1 : 必须要加括号保证运算完整#define MYADD(x,y) ((x) +(y))void test01(){ int a = 10; int b = 20; int ret = MYADD(a, b) * 20; //不加括号时 x + y * 20 cout << ret << endl;}即使加了括号,有些运算依然与预期不符//宏缺陷2: 即使加了括号,有些运算依然与预期不符#de原创 2021-07-18 22:04:07 · 84 阅读 · 0 评论 -
VS使用技巧-使用代码片段管理器自定义代码模板
自定义代码片段新建一个脚本,命名为,xxx.snippet,本例为#1.snippet<?xml version="1.0" encoding="utf-8"?><CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>#1</Ti原创 2021-07-18 21:26:16 · 537 阅读 · 1 评论 -
C++对C语言的增强总结
C++对C语言的增强总结C++对C语言的增强全局变量检测增强函数检测增强类型转换检测增强struct 增强bool数据类型扩展三目运算符增强const增强C语言下全局const局部 constC++语言下全局 const 和C结论一样局部 constconst 链接属性C语言下const修饰的全局变量默认是外部链接属性C++下const修饰的全局变量默认是内部链接属性,可以加extern 提高作用域const分配内存情况(C++)尽量用const代替defineC++对C语言的增强全局变量检测增强c原创 2021-07-17 22:12:40 · 160 阅读 · 4 评论 -
C++ 引用
C++引用C++引用引用内存使用说明注意使用引用作为函数参数变量名作为实参和形参传递变量的地址分析:总结引用作为形参分析总结C++引用对一个数据可以建立“引用”,作用是为一个变量起别名,C++对C的扩充。如下int a; //定义整型变量aint &b = a;//声明b为a的 “引用”以上声明了b是a的引用,即b是a的别名,此时使用a或b的作用相同,都代表同一个变量。若a的值为20,b的值也为20。且上述声明中,&是引用声明符,并不代表地址。不能理解为把a的值赋给b的地址。在数原创 2021-07-17 12:17:52 · 202 阅读 · 1 评论