C++基础学习
文章平均质量分 70
在有C语言的基础上,学习C++的命令空间、类、运算符重载、继承、模板等知识。只有基础稳扎稳打,遇难才能不慌不忙!希望我们能够一起学习 ,一起进步!
沐鑫本鑫
FIGHTING
展开
-
(13)C++模板
模板作用函数模板概念形式实例多个参数作用域模板具体化问题引入概念形式实现原理模板实例化举栗作用节省非常多的代码,用同样的代码,实现不同的功能,也就是泛型思想,多态也是其中一种。STL就是利用模板实现的一个具体的实例。函数模板概念函数名可以相同,参数不同,调用的时候传参是什么类型的,就调用哪个函数传递什么类型的值,就生成什么类型的函数定义。void print(int a){ cout << a << endl;}void print(float b){ co原创 2021-05-23 19:52:31 · 81 阅读 · 0 评论 -
(12)C++联编、异常、单例、内部类、新式类型转换
其他联编1.概念理解联编1.概念将模块(每个文件单独的编译,就是单独的模块)或者函数合并到一起生成可执行代码的处理过程,(函数调用),按照联编所进行的阶段不同,可分为两种联编方法:静态联编和动态联编理解就比如说函数://函数实现void print(){ cout << "联编" << endl;}//函数调用print();(1)联编就是将函数实现和函数调用联系在一起,关联在一起。程序走到print()处,就知道要调用函数实现那一块,这就叫做联编。(2原创 2021-05-21 17:53:35 · 102 阅读 · 0 评论 -
(11)C++多态与虚函数
多态与虚函数多态:父类的一个指针,可以有多种执行状态或结果,即多态1.多态与虚函数的关系:多态是一种泛型编程思想,虚函数是实现这个思想的语法基础(类比类和面向对象的关系)泛型编程思想:同样的代码实现不同功能;宏观体现:父类的指针,调用子类的函数 。2.父类指针调用子类函数,代码实现:思路:在父类声明一个指针,指向子类的函数Cfarther *farther = new Cson;farther->print1();//只能调用父类函数成员farther指针只能读父类的成员,.原创 2021-05-18 19:56:33 · 161 阅读 · 0 评论 -
(10)C++继承初始
继承基础涵盖1.作用:增加代码的重用性2.形式:包括基类/父类和派生类/子类class CPeolpe//声明基类/父类{public: void study() cout << "goto study" << endl;};class Cchlid : public CPeolpe //继承父类的形式{public: void school() cout << "goto school" << endl;};3.可.原创 2021-05-17 19:56:04 · 401 阅读 · 0 评论 -
(9)C++运算符重载
运算符重载认识由来:对象不能相加 类里面多个成员,不知道谁加谁而运算符重载就可以使对象相加,运算符可自定义1.关键字:operator2.本质是函数例如:class Cstu{public: int a; float b; Cstu() { a = 12; b = 12.5; }};//运算符重载void operator+(Cstu &stu,int c) //加上引用,避免拷贝构造 //假如成员stu与12相加 参数列表内是相加的两个数.原创 2021-05-11 20:29:24 · 170 阅读 · 0 评论 -
(8)C++内联函数
内联函数常规函数调用过程:调用时,根据函数地址,跳到函数的代码空间,执行指令,执行完,再跳转到调用的位置综合:来回跳跃+记录跳跃的位置==一定的系统开销(资源+时间)内联函数:1作用:用相应的代码,替换调用,比常规函数快,代价是占用更多内存2过程:由主函数向下执行,到内联函数调用时,将调用的代码替换成函数内部的内容,省去了来回跳转的部分。3声明方式普通函数前面加上inline的关键字inline void fun(){ int a = 12; char b = 's'; flo.原创 2021-05-09 20:00:43 · 144 阅读 · 0 评论 -
(7)C++拷贝构造(浅拷贝、深拷贝)
拷贝构造本质:构造函数(与其他构造函数是重载关系)1.形式 Cstu(const Cstu &a)//参数是类的常引用 { }2.用已有对象给新对象初始化的方式(只有这几种方式才会调用拷贝构造)新建一个对象,并将其初始化为同类现有对象(用一个对象给新的对象初始化)(1)把对象作为参数进行初始化//下面代码是将对象stu1通过传参赋值给aclass Cstu{public: Cstu() { } //拷贝构造 Cstu(const Cstu &a).原创 2021-05-09 15:07:18 · 240 阅读 · 0 评论 -
(6)C++常函数、静态成员使用方法
常函数1.形式回顾类中的函数成员:class Cstu{public: void print() { cout << "shlimy" << endl; }};即在函数名后加const(类型限定符、类型修饰符) 就是常函数了 void print() const //常函数 { cout << "shlimy" << endl; }2.注意(1).构造函数和析构函数不可以是常函数3.特点(1).可以使用数据.原创 2021-05-09 09:14:45 · 188 阅读 · 0 评论 -
(5)C++this指针
This指针前奏:#include<iostream>using namespace std;class Cstu{public: int a; Cstu(int a) { a = a; //此时,构造函数里的a,只是函数里的,把外面的a覆盖了 } void print() { cout << a << endl; }};int main(){ Cstu stu(12); stu.print(); system("pa.原创 2021-05-07 14:38:37 · 210 阅读 · 0 评论 -
(4)C++析构函数、两种申请释放空间的不同
二、析构函数与构造函数对比:构造函数是对象在创建时自动调用一个函数析构函数是对象在释放时(对象生命周期结束时)自动调用一个函数可用断点查看1.作用:清理工作:比如我们在堆区(用new)申请了一段空间,析构函数可以释放掉;调用时间决定了它主要的作用2.形式:~类名(){} 如下: ~Cstu(void) //析构函数写法 无参加void { }3.注意:a.不想构造函数可以重载多个,析构函数只有一个;b.而且析构函数无参数,所以必须要加上void;c.系统会有一个默认的原创 2021-05-07 13:03:57 · 1231 阅读 · 0 评论 -
(3)C++构造函数及初始化和赋值的区别
函数成员一、构造函数回顾上节利用函数成员来调用其他成员:构造函数的产生:#include<iostream>using namespace std;class Cstu{public: int age ;//整形数据成员; char strong; float Heigh ; void message() //特别申请一个函数给其他成员初始化 用的时候直接用就好了 { age = 20; strong = 'a'; Heigh = 1.73f; }}原创 2021-05-06 20:18:57 · 778 阅读 · 0 评论 -
(2)C++类和面向对象
## C++学习笔记(2)类和面向对象理论类和对象的关系:1.面向对象是一种编程思想2.类是一种语法3.语法是实现编程思想的基础类定义:具有相同属性(数据成员)和行为(函数)的对象的集合,比如:人类是一个人的集合,而我就是这个类的具体个体,称作对象类是一种语法,关键字是class,而C语言的struct则是类的特殊情况成员调用:1.栈区普通对象调用2.堆区指针对象调用3.类的所有成员(除个别特殊static),必须通过对象访问4.类和对象的使用:#include<ios原创 2021-05-01 12:44:46 · 224 阅读 · 2 评论 -
(1)C++ 详解一段简单代码的输出
一段简单的代码输出#include <iostream> using namespare std; //主函数头文件 int main() { cout <<"Hello" << endl; //正常输出语句 endl(L的小写) system("pause"); return 0; } 细致解析:1.主函数头文件#include <iostream> using namespare std; //主函数头文件相当于原创 2021-04-27 20:23:29 · 1493 阅读 · 0 评论