c++
叶书书书书
这个作者很懒,什么都没留下…
展开
-
c++学习笔记十九(关于auto)
auto关键字一.概述在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量。C++11中,auto有了全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。通俗地讲,auto关键字是可以自动推导变量类型的。需要注意的是,auto不是一个类型的“声明”,而是一个“占位符”...原创 2020-03-20 15:34:35 · 335 阅读 · 0 评论 -
c++学习笔记十八(lambada表达式)
lambada表达式一.概述C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。语法形式:[函数对象参数/捕获] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}二.构成部分分析1.[函数对象参数/捕获]内容含义空没有任何函数对象参数。=函数体内可以使用 Lamb...原创 2020-03-20 14:34:40 · 375 阅读 · 0 评论 -
c++学习笔记十七(函数指针与智能指针)
1.auto_ptr作用:对作用域内的动态分配对象的自动释放基本类型:#include <iostream>#include <memory>using namespace std;int main(){ int* pn = new int(10); auto_ptr<int> ap(pn); cout << *a...原创 2020-03-15 17:31:46 · 374 阅读 · 0 评论 -
c++学习笔记十六(动态链接库与静态链接库--类篇)
文件内容:test.h:#pragma onceclass Test{public: Test(); ~Test(); void Func(int i);};test.cpp:#include <iostream>#include "test.h"using namespace std;Test::Test(){ cout <...原创 2020-03-15 12:08:10 · 194 阅读 · 0 评论 -
c++学习笔记十五(动态链接库与静态链接库--函数篇)
函数和数据被编译进一个二进制文件,编译器在链接过程中将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。建立三个文件;test.cpp:#include <iostream>#include "test.h"using namespace std;void Func(int i){ cout << __func__ &...原创 2020-03-12 21:29:07 · 191 阅读 · 0 评论 -
c++学习笔记十四(makefile文件)
也就是说,如果只执行make,就执行的是makefile文件里定义的第一条指令;具体执行哪条指令,需要在make后加上其对应的目标名。2. Makefile多文件编译编辑三个文件作为示例:string.h:#ifndef _STRING_H_#define _STRING_H_#include <iostream>using namespace std;#incl...原创 2020-03-11 21:33:34 · 360 阅读 · 0 评论 -
c++学习笔记十三(重载和多态原理分析)
同一个.h头文件里的声明的sum函数g++编译后,倾轧的sum函数(不可以被c调用):gcc编译后,未被倾轧sum函数(可以被c调用,但是不可以被c++调用,因为c++只会调用编译后倾轧的函数):为解决让同一个头文件编译后,既可以被c调用,也可以被c++调用,如此定义头文件array.h:#ifndef ARRAY_H#define ARRAY_H#ifndef __...原创 2020-03-09 13:40:23 · 139 阅读 · 0 评论 -
c++学习笔记十二(类型转换)
类型转换·隐式类型转化·显示类型转换回顾C语言中的转换//隐式转换:一般由表示范围小的类型转换为表示范围大的类型int n = 10;float f = n;n = f; //反过来转换会出现截取的情况,有的编译器会警告,有的会报错 //截取会造成数据的精度的丢失int* p = &n;void* v = p; //隐式转换p = (int*)v; //显式...原创 2020-03-09 01:27:50 · 235 阅读 · 0 评论 -
c++学习笔记十一(STL算法)
c++STL常用算法示例代码:#include <iostream>#include <vector>#include <list>#include <algorithm>#include <iterator>#include <numeric>#include <string>using...原创 2020-03-03 18:27:41 · 189 阅读 · 0 评论 -
c++学习笔记十(STL容器)
容器容器(Container)分类顺序容器(序列容器)Sequence Containervector,list,deque关联容器 Associative Containermap,set容器适配器 Container Adapterstack,queue,priority_queue一.顺序容器(序列容器)Sequence Containerv...原创 2020-03-03 18:24:47 · 180 阅读 · 0 评论 -
c++学习笔记九(STL概述)
vector容器vector的四种迭代器:迭代器作用iterator可修改迭代器 begin() end()reverse_iterator逆序可修改迭代器 rbegin() rend()const_iterator不可修改迭代器 cbegin() cend()const_reverse_iterator逆序不可修改迭代器 crbegin()...原创 2020-02-27 21:32:26 · 137 阅读 · 0 评论 -
c++学习笔记八(模板)
#include <iostream>#include <string>using namespace std;template <typename T>T Max(T a,T b){ return a>b?a:b;}int main(){ //指定类型 cout << Max<int>(10,1...原创 2020-02-26 17:30:43 · 243 阅读 · 0 评论 -
c++学习笔记七(异常)
注意:虽然异常后的代码不会执行,但是处理(catch)后的程序会继续执行示例:#include <iostream>using namespace std;int divide(int a,int b){ if(0==b) throw string("Error:除数不能为0!"); //抛出异常 return a/b;}int main(){...原创 2020-02-24 17:36:39 · 349 阅读 · 0 评论 -
c++学习笔记六(文件)
格式控制成员函数:#include <iostream>#include <iomanip>using namespace std;int main() { int n = 10; float f = 0.1; string s = "hello"; cout.width(10); cout.fill('*')...原创 2020-02-23 17:35:42 · 156 阅读 · 0 评论 -
c++学习笔记五(多态)
#include <iostream>using namespace std;class Father{public: virtual void Func(){ cout << "Father::Func()" << endl; }};class Son:public Father{ //覆...原创 2020-02-21 17:34:38 · 120 阅读 · 0 评论 -
c++学习笔记四(继承)
子类继承父类的默认方式是private继承另外:在C++中结构体也是可以互相继承的,它们之间的继承关系默认是public的示例:#include <iostream>#include <cmath>using namespace std;class Triangle{//private: //父类的私有成员子类函数不能访问,但是父类函数和友元函数...原创 2020-02-20 19:50:34 · 385 阅读 · 0 评论 -
c++学习笔记三(再谈类和对象)
赋值运算符拷贝函数示例:#include <iostream>using namespace std;class Test{public: Test():n(0),m(0){} Test(int n,int m):n(n),m(m){} Test& operator=(const Test& t){ //赋值运算符重载,覆盖掉...原创 2020-02-16 18:20:06 · 244 阅读 · 0 评论 -
c++学习笔记一(从c过渡到c++)
c++和c的几个简单的区别例子:调用同一个函数时,会自动匹配合适的参数执行如果出现以下情况,编译器就会报错,认为重复定义:但是有些时候就是需要定义重名的参数,所以避免混乱,就可以应用命名空间:将同名的函数拉入到新的命名空间中,根据命名空间来区分它,就不会出现重复定义的问题注意:命名空间可以间隔着重复添加函数或者变量等等c++和c动态内存分配的区别:关...原创 2020-02-12 11:00:31 · 123 阅读 · 0 评论 -
c++学习笔记二(类和对象)
注意:成员变量一般是私有的,只能通过成员函数访问;成员函数一般是公有的,可以提供给对象对外调用。Vector和string实际应用:#include <iostream>#include <vector>using namespace std;int main(){ //定义一个一般的数组做对比 int a[] = {1,2,3,4,...原创 2020-02-12 17:34:09 · 157 阅读 · 0 评论 -
c++中的Vector和String
实际应用:#include <iostream>#include <vector>using namespace std;int main(){ //定义一个一般的数组做对比 int a[] = {1,2,3,4,5,6,7}; for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){ c...原创 2020-02-13 11:42:18 · 2115 阅读 · 0 评论