c++
austral_sep
这个作者很懒,什么都没留下…
展开
-
基于QT的即时通信系统项目(仿QQ)
目录要求要求界面要求 仿QQ (登录、注册)、(好友列表)、(聊天窗口)、 (聊天记录) 选做:群聊 功能:c/s 架构 可以使用Linux C开发服务器 登录、注册(自动生成id、 id登录) 聊天窗口(字体设置、表情) 聊天记录(可以选择日期查看聊天记录)...原创 2020-12-02 14:20:56 · 1446 阅读 · 0 评论 -
c++对c的加强(九)--运行时类型信息
cast类型转换static_cast : 相关类型转换(基本类型转换,基类和派生类之间的向上向下类型转换(不做类型转换))dynamic_cast : 基类和派生类之间向上向下类型转换;类型检查;失败返回nullptr,所以可以检测是否转型成功;只能转指针,且必须有多态;reinterpret_cast : 任意类型转换;(类似于c语言强制类型转换)const_cast : 去除指针或者引用的const权限;typeidtype_info typeid(对象名/变量名);(基本用作类型筛选)原创 2020-05-11 16:35:48 · 154 阅读 · 0 评论 -
c++对c的加强(八)--继承
目录c++的继承继承描述继承语法声明复用实例继承规则派生类前言:封装:提高代码维护性;继承:提高代码复用性 - - 代码复用的方法:组合(has)、继承(is);多态:提高代码扩展性。c++的继承继承描述(1)A类是B类的父类,B是A的子类。(2)A类是B类的基类,B类是A的派生类。(3)继承的过程可视为拷贝。继承语法声明复用实例//组合(将一个类作为另一个类的对象成员)...原创 2020-05-03 16:24:27 · 102 阅读 · 0 评论 -
c++对c的加强(七)--运算符重载
目录运算符重载友元机制运算符重载运算符重载友元机制概念定义:(友元函数、友元类)(1)友元是一种允许非类成员函数访问类的非公有成员的一种机制。(2)可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元。友元函数:(1)该函数不是类的一部分,但又需要频繁地访问类的数据成员。(2)友元函数在类作用域外定义,但它需要在类体中进行说明。破坏封装性,尽可能少用。(3)为与该类...原创 2020-05-03 16:01:56 · 170 阅读 · 0 评论 -
c++对c的加强(六)--成员函数、属性
目录成员函数、属性对私有属性添加set/get方法static 关键字const 关键字空类默认生成的成员指向类成员的指针成员函数、属性对私有属性添加set/get方法//在类中生成函数调用函数即可void setNUm(int num){ this->m_num = num;}int getNUm(){ return this->m_num;}static ...原创 2020-05-03 15:45:53 · 311 阅读 · 0 评论 -
c++对c的加强(五)
目录移动构造和移动赋值移动构造和移动赋值作用:对象移动,解决(临时)对象拷贝带来的开销问题。 Test getTest() //类中{ Test t(“hello world”); //在退出函数时空间自动释放 return t; //而此时又需要有返回值,就产生了临时对象} Test t1 = getTest(); //当移动构造函数未定义时...原创 2020-05-03 15:06:29 · 127 阅读 · 0 评论 -
c++对c的加强(四)
类型转换的升级c语言的转换是强制型转换static_cast:类似于c语言的强制转换,保证代码的安全性和正确性,相关数据类型之间转换int a = static_cast<int>(b);char ch = static_cast<char>(a);指针之间的赋值规则:必须是相同指针类型(以确保相同步长),所以static_cast不可以转换指针的类型。voi...原创 2020-03-22 15:59:03 · 103 阅读 · 0 评论 -
c++对c的加强(三)--函数升级
宏函数:省去了形参以及函数体里所需分配的空间;省去了函数调用,传参,函数返回,释放等过程。所以频繁且功能简单的函数应该使用宏函数 1 #define ADD(a,b) a + b自定义函数 vs 宏函数编译时间换取内存时间:宏函数内存空间换取运行时间:inline修饰的函数(内联函数:将函数体里的语句内嵌到函数调用的地方,省去了函数调用,返回等操作,提高了运行效率)在c中:凡是i...原创 2020-03-13 17:28:23 · 109 阅读 · 0 评论 -
c++对c的加强(二)
C的关键字修饰:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。省去了CPU到内存中抓取数据的时间。register : 不能修饰全局变量,也不能修饰函数,只能修饰局部变量。static : 局部变量,全局变量,函数都可以修饰。注意在c中变量存在寄存器后就不能取地址,因为取地址是去内存的地址,但变量已经可以能被存在寄存器里了。C++的升级:可...原创 2020-03-13 17:25:41 · 105 阅读 · 0 评论 -
c++对c的加强(一)
1、C++命名空间(最好定义在头文件中)①使用命名空间的目的:防止变量名、函数名、类名发生冲突,限制变量的作用域;②命名空间的定义:1 namespace one2 {3 int num = 6;4 int count = 7;5 }③命名空间的使用:命名空间名::变量名或者函数名(one::num)④命名空间可以嵌套使用: 1 namespace on...原创 2020-03-13 17:20:30 · 95 阅读 · 0 评论 -
Linux c++开发——概述
嵌入式面向对象编程(嵌入式Linux C++开发)学习内容:C++(c with class)==95% (数据类型、基本控制语句、函数、关键字、位运算、指针、数组)1.C到C++升级(语法升级)2.C++面向对象的三大特点(封装、继承、多态)3.C++内存管理(智能指针、内存池)4.C++异常处理5.C++文件处理(IO操作)6.C++模板7.C++STL(C++ 语法 :C+...原创 2020-02-26 17:55:28 · 232 阅读 · 0 评论