C++
文章平均质量分 57
C++ 的学习以及程序
CN-BKingYZxiaoJT
汽车之从拧螺丝到实现自动驾驶
展开
-
数组类封装
源代码://test.cpp#include <iostream>#include "MyArray.h" using namespace std; int main(){ // 自己写MyArray.h 头文件和 MyArray.cpp 源文件 实现数组类 Array // 数组类的构造函数有一个 int 型参数 表示数组的大小 Array a1(10); // 数组类有一个 length 方法 用于获取数组的大小 for (in原创 2021-02-03 16:33:29 · 133 阅读 · 0 评论 -
设计一个类 实现包括成员数据以及求两个数的最大公约数和最小公倍数的成员函数。并编写主函数测试
设计一个类 实现包括成员数据以及求两个数的最大公约数和最小公倍数的成员函数。并编写主函数测试源代码:#include <iostream>using namespace std;class max_min{private: int x; int y;public: max_min(int x, int y); ~max_min(); void get();};max_min::max_min(int x, int y){原创 2021-02-03 16:01:24 · 746 阅读 · 0 评论 -
设计一个类 实现十进制到十六进制的转换。并编写主函数测试
设计一个类 实现十进制到十六进制的转换。并编写主函数测试源代码:#include <iostream>using namespace std;class change{private: int n;public: change(int n); ~change(); void exchange();};change::change(int n){ this->n = n;}change::~change(){}原创 2021-02-03 15:59:27 · 323 阅读 · 0 评论 -
设计一个类 实现求n!(n的阶乘)。并编写程序输出8
设计一个类 实现求n!(n的阶乘)。并编写程序输出8;源代码:#include <iostream>using namespace std;class jiecheng{private: int n;public: jiecheng(int n); ~jiecheng(); int getjiecheng(); //计算阶乘结果 void showsum(); //打印阶乘结果};jiecheng::jiecheng(int原创 2021-02-03 15:57:40 · 1755 阅读 · 0 评论 -
利用多态的思想写一个王者荣耀的框架
头文件1:hero.h#ifndef HERO_H_#define HERO_H_#include "skin.h"#include <iostream>using namespace std;class Hero{protected: char * name; Skin * sk;public: ~Hero() { delete sk; } char * get_name() { return name; } Skin * get_skin(原创 2021-02-02 10:14:50 · 414 阅读 · 0 评论 -
C++的学习日记day8(类型转换、异常、输入输出流、文件)
C语言类型转换隐式类型转换:int myMax(int a,int b){}调用:myMax(1,‘A’);强制类型转换(显式类型转换):int *p = (int *)malloc(…)typename1 a = (typename2)b;C++里面提供一组可以在不同场合使用的强制转换(本质就是类模板)static_cast(exp)1.用于基本的类型转换,不能用于指针间的转换(pc = static_cast<char*>(pi)????比如将Int转为char型(和C语原创 2021-01-31 09:27:43 · 139 阅读 · 0 评论 -
C++的学习日记day7(模板)
模板生活中 模具外形不变,(球体模具) 铁球,塑料球int myadd(int a,int b)double myadd(double a,double b)char myadd(char a,char b);void swap(int *,int *)值传递 指针传递 引用传递假如一个程序的功能仅仅是针对某种特定的数据类型进行处理,可以将这些特定的数据类型说明为参数,即将该程序说明为模板优点:节省代码量;函数模板用法:template <模板参数表><函数返原创 2021-01-30 11:59:01 · 145 阅读 · 1 评论 -
C++的学习日记day6(多态)
多态:(多种状态)C:switch/case , if条件语句C++: 函数/运算符重载编译时:函数重载运行时:switch/case现象:类型兼容性原则+重写重写:发生在继承关系,父类和子类都有相同的函数原型(成员覆盖)重载:同名不同作用(重载的函数原型不同)相同点:名字相同早期联编(静态链接):(编译时的多态)后期联编(动态链接)(运行时的多态)虚函数:语法: virtual <类型> 成员函数名(<参数列表>)必须是基类中成员函数,且当基类的某原创 2021-01-28 15:35:20 · 143 阅读 · 0 评论 -
C++学习日记day5(运算符重载)
运算符重载运算符:单目/双目/三目重载:(函数重载) 名称相同,作用不同(“一名多用”)* 乘号/指针& 引用/取地址<<,>> 位移运算符/输出. :: ?: *(指针) sizeofCPoint (3,4)c1 ,c2; c1+c2不能改变优先级,结合性不能改变所需要的操作数不能创建新的运算符单目运算符 ++ – (前置/后置)前置:运算符重载本质是一个成员函数;CPoint c1;c1++;成员函数<返回值原创 2021-01-25 19:42:57 · 195 阅读 · 2 评论 -
C++学习日记day4(继承和派生)
通过继承:1.可以在已有的类的基础上添加新的功能;2.可以在已有的类的基础上添加新的变量;3.可以修改类的方法;(不常用)什么时候需要用到继承?1.创建一个新的类的时候,这个类与现有的类相似(只是多出若干成员变量或成员函数时候)2.当你创建多个类的时候,拥有很多相似的成员函数或者成员变量,可以将这几个类中通用的部分提取出来作为一个基类。(节省代码节省代码)继承权限:class Car{};class BMW:<继承权限> Car{};class 派生类名:<继承权限原创 2021-01-23 17:39:20 · 94 阅读 · 0 评论 -
C++的学习日记3(类和对象)
浅拷贝:(现象)用一个对象给另一个对象做初始化 会调用默认拷贝构造(只是做简单指针赋值)释放空间的时候会造成(“野指针”/“指针悬挂”/)浅拷贝 “让新旧两个对象中的指针指向了同一块存储空间”深拷贝:手动写拷贝构造函数,程序员自己给指针分配存储空间m_name = (char*)malloc(sizeof(char)20);malloc: 返回值(void)free(m_name);#include <iostream>using namespace std;class t原创 2021-01-21 19:53:57 · 268 阅读 · 0 评论 -
C++的学习日记2(函数重载)
面向过程(思想):以什么正在发生为目标(强调的是算法)缺点:不容易维护,灵活性差,不容易扩展,不能复用;面向对象:以什么正在受影响为目标(建模)耦合度:模块与模块存在的联系(越低越好) 多态可复用,耦合度低(职责分离)封装:把“数据(属性)”和“函数(操作)”合成一个整体内联函数关键字 inline 必须加在函数定义之前,放在函数声明之前无效内联函数不需要像函数调用一样 寻址、压栈、出栈编译器直接将使用相应的函数代码替换函数调用优势 内联函数不需要像函数调用一样 寻址、压栈、出栈节原创 2021-01-20 14:51:23 · 73 阅读 · 0 评论 -
C++的学习日记1(C++基础)
汇编(低级语言) -> Fortran(formula translation) (第一个高级语言)(195x年)-> B -> C(Dennis Ritchie 丹尼斯里奇)贝尔实验室(AT&T->朗讯->诺基亚)UNIX(LINUX前身) 操作系统:能够管理计算机资源,处理计算机与用户之间交互的“一组程序”。C++与C语言相比 优势?C语言特点: “面向过程”:注重的是数据与算法过程化编程:首先确定需要计算机采取的操作,然后使用编程语言来实现;问题:原创 2021-01-19 20:01:43 · 129 阅读 · 2 评论