![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 77
资深流水灯工程师
这个作者很懒,什么都没留下…
展开
-
C++:申明Declaration与定义Definition的本质与区别
定义则是实际创建变量或函数的过程,包括分配内存给变量、给出函数的具体实现和构造/析构函数等内容。定义通常只能在一个特定的位置,比如在函数内部或源文件中。// 在源文件中定义变量并初始化// 定义函数// 在源文件中定义类public:// 构造函数和成员变量的定义。原创 2024-07-06 11:08:17 · 273 阅读 · 0 评论 -
C++:引用的本质与应用
1、变量是一段连续存储空间的;2、程序通过变量来申请并命名存储空间;3、可以通过变量的名字来使用存储空间;那么问题来了,一段连续的存储空间是否可以有多个别名?一个人可以有乳名,小名,正名,字,号,同理存储空间应该可以有多个别名,可以通过引用来解决。原创 2024-07-06 10:51:50 · 558 阅读 · 0 评论 -
C++:类的成员属性,公有,私有,保护
它们的主要特点是只能在该类内部直接访问,外部(包括派生类)无法直接读取或修改这些私有元素,这提供了一种封装机制,保护了类的数据不被随意篡改。在C++中,公有属性(Public Members)是类的成员变量,它们可以被类的所有外部程序直接访问和修改,因为它们的访问权限设置为public。这意味着在基类中声明的受保护成员,只有直接或间接从基类派生出来的子类能访问它,而外部的函数或对象无法直接操作这些成员。:在设计类的时候,如果某个数据对所有用户都是可见且需要频繁操作的,将其设为公有属性是合理的。原创 2024-07-06 10:38:17 · 823 阅读 · 2 评论 -
C++:类继承是什么,怎么继承
首先了解什么是基类,什么是派生类在面向对象编程中,基类(Base Class 或 Superclass)是一个类的模板,它定义了一些通用的属性和行为。子类(Derived Class 或 Inheritance)可以从基类那里继承这些属性和方法。基类通常包含了共性的功能,而子类则可以在此基础上添加特有的特性和扩展。通过基类,可以实现代码的复用,并支持模块化的结构设计,使得代码组织更清晰,维护更容易。在C++中,类继承是一种。原创 2024-07-05 17:25:56 · 307 阅读 · 0 评论 -
C++:构造函数是什么东西
在C++中,构造函数是一种特殊成员函数,它有一下几个明显的特征:1、它在创建新对象时被调用。2、其3、返回类型,4、通常(除了默认情况下的隐式this指针)。的是初始化新创建的对象设置它们的数据成员到合适的初始状态。当对象的生命期开始时,构造函数会被执行一次;当对象不再存在(如通过删除、局部变量超出作用域等)时,析构函数则会自动调用。原创 2024-07-05 16:32:15 · 529 阅读 · 0 评论 -
C++:this指针到底是什么东西
在C++中,this是一个隐含的指针,它指向当前正在被调用的函数的对象实例。当你在一个成员函数内部引用selfme或者是无名的"this"时,实际上是访问了这个特殊的变量。this通常用于区分函数参数和局部变量,以及访问或修改该函数所属的对象状态。在这个例子中,printName函数通过this->name访问了MyClass对象的name属性。使用this的关键在于其作用域,它只在当前作用域内的成员函数内有效。在构造函数、析构函数、拷贝构造函数和赋值运算符等特殊成员函数中,this。原创 2024-07-05 16:12:16 · 1032 阅读 · 0 评论 -
Qt学习:QPushButton组件的使用
Qt中的QPushButton(Push Button)是一个常用的图形用户界面组件,它代表了一个可以在用户界面中点击的矩形区域,通常用于触发某种操作或执行特定功能。当用户单击按钮时,程序会响应预定义的槽函数(slot),即连接到该按钮的事件处理函数。触发事件处理:当用户点击按钮时,会触发预设的槽函数(slot),即连接到的特定方法。响应状态变化:QPushButton支持不同的视觉样式和状态,如正常态、按下态、选中态等,这可以通过设置样式或者连接信号来实现动态效果。原创 2024-07-04 13:46:28 · 188 阅读 · 0 评论 -
Qt学习:Qt的坐标系统
Qt的坐标系统是一个基于屏幕或窗口的二维空间体系,用于描述用户界面元素的位置和大小。(Screen Coordinates):这是最直观的坐标系统,原点通常设置为屏幕左上角,X轴向右延伸,Y轴向下延伸。当你创建窗口并放置控件时,如果不指定其他坐标,它们会按照屏幕坐标进行定位。(Window Coordinates):每个窗口都有自己的坐标系统,相对于其父窗口(如果没有父窗口,则相对于屏幕)。当控件在窗口内部移动时,窗口坐标保持不变,即使窗口被调整大小或移动到其他位置。此外,Qt还提供了一种称为。原创 2024-07-04 13:34:59 · 1016 阅读 · 0 评论 -
Qt学习:Qt窗口组件以及窗口类型
开发者可以根据项目需求创建独特的UI组件。Qt的窗口组件设计灵活,易于上手,并提供了高度的可定制化,使得构建功能强大的图形用户界面变得非常方便。原创 2024-07-04 10:27:03 · 745 阅读 · 0 评论 -
Qt学习:Qt Creator工程管理
cpp 和 .h 或 .hpp 文件:源代码文件,分别负责实现类的成员函数和声明,C++类库通常是.cpp后缀,头文件.h或.hpp用于暴露接口供其他模块引用。.pro 文件(Project file):这是Qt Creator项目文件,也叫项目描述文件,用于定义工程的基本配置、依赖项、构建设置等信息。.ui 文件:如果项目中涉及到GUI设计,会有Qt Designer生成的.ui文件,它是Qt的资源文件,用于描述用户界面布局。文件是一个用户特定的配置文件,主要用于存储针对特定开发者的个性化设置和偏好。原创 2024-07-03 17:21:45 · 369 阅读 · 0 评论 -
Qt学习:Qt用户界面的核心元素
包括各种UI元素,如按钮(Button)、标签(Label)、文本编辑器(TextEdit)、滑块(Slider)、复选框(Checkbox)、单选按钮(RadioButton)等,用于交互和数据展示。:Qt提供了几种布局管理器(Layouts),如FlowLayout、GridLayout和QHBoxLayout/QVBoxLayout等,帮助管理和组织控件的位置和大小,保证界面在不同屏幕尺寸下看起来整洁。:用于控制界面的颜色、字体和其他视觉属性,提供统一美观的外观。原创 2024-07-03 16:23:17 · 758 阅读 · 0 评论 -
Qt学习:Widgets Application与Console Application的区别
Qt Widgets和Qt Console是Qt框架中的两种不同组件,它们的主要区别在于用户界面交互和用途。原创 2024-07-02 15:46:52 · 259 阅读 · 0 评论 -
C++学习:类的静态成员变量与静态成员函数
每次获取对象数目的时候都需要调用getCount()这个函数,但是如果程序中一个对象都没有定义,也应该能获取对象的数目是0,但是对象都没有了,怎么调用getCount()这个函数?我们知道对象的成员变量一般不能被外界所访问,每个对象有自己独立的一套成员变量,那有没有可能在类中高一个成员变量,让所有对象共享这个成员变量,这就需要静态成员变量。类的对象有成员变量和成员函数构成,从程序运行的角度,独享是由数据和函数构成的,数据可以位于栈、堆、全局数据区;应用代码,使用类名来调用静态成员函数,不依赖于特定的对象。原创 2023-10-26 14:34:39 · 78 阅读 · 0 评论 -
C++学习:临时对象
在执行Test(5)的时候就得到一个临时对象,因为我们知道,只要构造函数执行完,对象就创建好了,所以执行了Test(5),就有一个对象被创建,这个对象连名字都没有,Test(5)执行完之后这个对象就会被析构,所以上面的构造函数代码等同于,没有调用Test(5).上面的代码,可以看出作者的意图是使用无参的构造函数调用有参构造函数,把对象的成员变量mi初始化为5,但是实际结果却是0(不同的编译器结果是不一样的,应该是随机值)。C++的临时对象跟C语言的野指针有的一拼,能避免就避免。原创 2023-10-26 11:54:29 · 150 阅读 · 0 评论 -
C++学习:类的使用--运算符重载
operator+(const Time &t) const与Sum(const Time &t) const效果完全一样,可以理解operator+()就是一个函数,也可以被调用。将Time类转换为重载的加法运算法很容易,只要将Sum()的名称改为operator +()即可。这两种方法都讲使用operator+()函数,运算符左侧的coding是调用对象,右边的fixing是参数被传递的对象。5、大多数运算符都可以通过成员或者非成员函数进行重载,但=、()、[]、->只能通过成员函数进行重载。原创 2023-10-23 14:54:51 · 394 阅读 · 0 评论 -
C++学习:类
类是一种将抽象转换为用户定义类型的C++工具,它将数据和数据处理组合成一个整体。比如股票类,首先要考虑如何表示股票。可以将某人持有的股票当成一个基本单元,数据包括他持有股票的数量,哪个公司的股票,还有最初购买的价格和购买的时间,股票的处理有增持,卖出,更新价格等。类一般由类声明和类方法定义两部分组成,类声明:以数据成员的方式描述部分,以成员函数的方式描述公有接口;类方法定义:描述如何实现类成员函数。可以这么说,类声明就是画个饼,类方法就是去实现这个饼。原创 2023-10-20 17:27:32 · 90 阅读 · 0 评论 -
C++学习:数据的存储、作用域、链接
声明的变量,以及函数的参数,是自动存储的。在程序执行对应函数的时候创建这些变量,对应的函数执行完之后,它们使用的内存被释放。也就是所谓的局部变量。2、静态存储在函数定义外的变量、以及使用static关键字定义的变量都是静态存储的,它们在程序的整个运行过程中都是存在的。函数定义外的变量。原创 2023-10-18 13:55:24 · 424 阅读 · 0 评论 -
数据结构学习:泛型编程(函数模板与类模板)
对于多参数函数模板,无法自动推导出返回值的类型,可以从左向右部分指定类型参数,工程中一般将返回值的参数类型作为第一个参数类型。程序实例6:多参数类型函数模板templateint main()return 0;原创 2023-10-07 17:26:05 · 111 阅读 · 0 评论 -
C++学习:初始化列表、对象的构造顺序、对象析构
语句时进行构造;原创 2023-10-05 21:44:15 · 338 阅读 · 0 评论 -
C++学习:构造函数
对象的定义:申请对象的存储空间,并调用构造函数;对象的声明:告诉编译器存在这样一个对象;原创 2023-10-05 19:20:02 · 152 阅读 · 0 评论 -
C++学习:类与对象
物以类聚,人以群分,在生活中,我们习惯将事物进行分类,在程序设计中也是可以引入分类的思想。中国的12生肖可以将人分成不同的类型;外国的12星座也是将人分成不同的类型;按照财富的多少分高产、中产、低产,也是将人进行分类;官员的九品等级也是将官员进行分类;老虎也分为东北虎、华南虎,孟加拉虎等;原创 2023-10-05 11:38:14 · 97 阅读 · 0 评论 -
C++学习:动态内存分配
在C++中,使用运算符new分配的内存,称为动态内存,C语言使用malloc函数来分配动态内存。动态内存由运算符new 和delete控制,而不是由作用域和链接性规则控制,因此可以在一个函数中分配动态内存,在另一个函数中将其释放。与自动内存的栈不同,动态内存不是先进后出,其分配和释放的顺序仅取决于new和delete在何时,以何种方式被使用。通常编译器使用3块独立的内存:一块用于静态变量,也就是常说的;一块用于自动变量,也就是常说的;一块用于动态内存,也就是常说的;原创 2023-10-04 20:34:10 · 220 阅读 · 0 评论 -
C++学习:默认参数、函数重载、函数模板
默认参数是C++中新引入的内容。默认参数指的是,当函数调用中省略了实参时,函数会自动使用默认的参数。要想使用默认参数,就必须得通过函数原型。因为编译器是通过函数原型爱了解函数所用的参数 数量,因此函数原型必须将可能得默认参数告诉程序。上述函数是希望返回一个新的字符串,因此将返回类型设置为char*,也就是指向char的指针;因为希望原始字符串保持不变,函数的第一个参数使用const限定符;因为希望n的默认值为1,就讲n赋值1,如果调用函数left()省略了参数n,那函数就将n设置为1;原创 2023-10-04 19:16:34 · 297 阅读 · 0 评论