C++编程从入门到实践
文章平均质量分 94
引导您从零基础开始学习C++编程,带领您逐步掌握这门强大而实用的编程语言。通过系统讲解,您将学会编写简单的C++程序,并逐渐掌握更复杂的编程技巧,在C语言的基础上了解到面向对象编程等核心概念。这里不仅提供详细的代码示例和讲解,还会分享一些实践项目,帮助您将所学知识应用到实际开发中。
攻城狮7号
(广交天下好友)个人主要从事多年c/c++研发,同时熟悉其他开发语言,涉猎跨平台客户端和底层开发,以及前后端开发(合作加V:linshantang)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【第十三节】C++控制台版本坦克大战小游戏
本项目是一款基于C++语言开发的控制台版本坦克大战游戏,旨在为玩家提供一个经典而又充满挑战的战斗体验。游戏在Windows系统上运行,使用Visual Studio 2015或更高版本进行开发。通过运用C/C++的核心知识点和数据结构,游戏实现了丰富的功能和复杂的逻辑。原创 2024-05-31 17:25:08 · 1149 阅读 · 0 评论 -
【第十二节】C++控制台版本贪吃蛇小游戏
本游戏是一款基于C++语言开发的控制台版本贪吃蛇游戏,旨在为玩家提供一个简单而有趣的游戏体验。游戏在Windows系统上运行,使用Visual Studio 2015或更高版本进行开发。原创 2024-05-31 17:11:06 · 1228 阅读 · 0 评论 -
【第十一节】C/C++的预处理及命名空间
宏定义是预处理的另一个重要功能,它允许程序员定义常量或宏函数。宏定义在预处理阶段进行文本替换,不占用任何存储空间,也不分配内存地址。常量宏定义通常用于表示一个不会改变的值。在代码中,每当出现PI时,预处理器都会将其替换为3.14159。在C++中,预处理器指令、静态变量和函数等特性可能会引起命名冲突,因为它们在编译时会直接插入到代码中,而不会考虑命名空间。然而,命名空间提供了一种机制来解决这种问题,通过将相关的标识符(如变量、函数、类等)组织在同一个命名空间中,可以避免命名冲突。原创 2024-05-31 16:28:06 · 1274 阅读 · 0 评论 -
【第十节】C++异常处理
/栈满异常类public:cout << "异常:栈满不能入栈" << endl;//栈空异常类public :cout << "异常:栈空不能出栈" << endl;m_nTos = 0;if (!private://报错i < 5;原创 2024-05-31 14:10:08 · 1045 阅读 · 1 评论 -
【第九节】C++运算符重载
运算符重载是C++的一个特性,允许程序员将运算符的定义扩展到对象上,目的是提高代码的直观性和可读性。简单的运算符表达式通常比函数调用更简洁易懂。系统为基本数据类型提供了预定义的运算符,如整数加法。对于字符串拼接,通常使用函数如strcat,但也可以通过重载“+”运算符来实现,例如。在C++中,除了条件运算符“?:”、指针分量运算符“->”、分量运算符“.”、范围解析运算符“::”和取大小运算符“sizeof”外,其他运算符都可以被重载。重载时必须保持原运算符的优先级、结合性、操作数个数和语法结构不变。原创 2024-05-31 09:49:52 · 1119 阅读 · 0 评论 -
【第八节】C++的静态成员和友元函数
全局对象,如同程序世界中的公共广场,提供了数据共享的便捷途径,然而其无处不在的可见性却带来了安全隐患。因此,在编写程序时,我们应谨慎使用全局对象,转而寻求更为安全的方法。实现类对象间的数据共享,静态成员是我们的得力助手。静态成员分为静态数据成员和静态成员函数,它们如同桥梁,连接着类的每一个对象,确保数据的一致性和共享性。友元函数,虽是普通的C++函数,却拥有特殊权限,能够触及类的保护或私有领域。这一特性极大地方便了编程,提升了效率,但同时也挑战了类的封装原则。原创 2024-05-31 09:47:59 · 1343 阅读 · 1 评论 -
【第七节】C++的STL基本使用
长期以来,软件行业一直致力于打造一种可重复利用的资源以及相应的构建方法,旨在确保程序员的心血不因时间的流逝或人员的变动而付诸东流。从简单的函数、类别,到复杂的函数库、类别库以及各种组件,再到模块化设计和面向对象的编程范式,这一切努力均是为了提高代码复用性。然而,复用性的实现必须依托于一套明确的标准。令人遗憾的是,在许多软件开发环境中,即便是最基础的数据结构和算法,也未能形成统一的标准。这导致大量程序员不得不重复进行许多前人已经完成的工作,仅仅是因为他们手中没有现成的、可复用的程序代码。原创 2024-05-30 10:49:56 · 1399 阅读 · 0 评论 -
【第六节】C++中的模板
模板是C++编程中的一种强大工具,它允许程序员创建具有通用数据类型的函数库和类库。作为支持参数多态性的机制,模板极大地增强了代码的复用性和灵活性。在C++语言中,程序的结构主要由函数和类组成,而模板则提供了两种关键的形式:A:函数模板- 这是一种定义,允许函数根据传递的参数类型自动适应,从而实现对不同数据类型的通用操作。B:类模板- 类似于函数模板,类模板允许创建可以处理多种数据类型的类,使得类的实例化可以根据实际使用的数据类型进行定制。原创 2024-05-30 09:46:22 · 1201 阅读 · 0 评论 -
【第五节】C++的多态性与虚函数
面向对象程序设计语言的三大核心特性是封装性、继承性和多态性。封装性奠定了基础,继承性是实现代码重用和扩展的关键,而多态性则是功能的扩充。多态性体现在对不同类的对象发送相同的消息时,会产生不同的行为。这里所说的消息主要是指对类成员函数的调用,而不同的行为则对应着不同的实现方式。在C++中,实现多态性的方法包括:函数重载运算符重载模板虚函数函数重载是多态性的一种基本形式,它允许在同一作用域内,相同的函数名对应不同的实现。函数重载的实现条件是函数参数的类型或个数必须有所区别。原创 2024-05-29 13:46:00 · 1364 阅读 · 0 评论 -
【第四节】C++的派生与继承
单继承的基本格式如下:class<派生类名>:<继承方式><基类名>//<派生类新成员的定义>其中,派生类名就是派生类的名字,并且派生类是按指定的继承方式派生的。继承方式有:A. public 公有继承B.private 私有继承C.protected 保护继承public:private:public:private:多继承的定义方式和单继承差不多。class<派生类名>:<继承方式1)<基类名1〉,<继承方式2><基类名2>,……原创 2024-05-29 11:10:41 · 1765 阅读 · 0 评论 -
【第三节】类的构造和析构函数
构造函数是一种独特的成员函数,其名称与类名完全一致,且不具备返回值类型,因此无法为其定义返回类型,亦不可使用void。在常规情况下,构造函数应被声明为公有函数。然而,将其声明为私有函数则有其特殊目的,例如在单例模式中使用。当创建类类型的新对象时,系统会自动调用相应的构造函数。class CDesk { //定义一个办公桌类public:CDesk() {cout << "我是构造函数"<<endl;//全局对象//局部对象//堆对象。原创 2024-05-28 17:01:57 · 1292 阅读 · 0 评论 -
【第二节】面向对象编程C++的类
类是对现实世界中客观事物的抽象表示,它将具有共同属性的多个事物归为一类。类的具体实例被称为对象。类是一种复杂的数据类型,它将不同类型的数据及其相关操作封装成一个整体。类体现了对数据的抽象性、隐藏性和封装性,确保了数据的安全性和操作的一致性。类对象的行为由其内部的数据结构和相关操作共同决定,而外部行为则通过操作接口来实现。用户主要关注的是操作接口所提供的服务,这些服务定义了对象可以执行的操作。原创 2024-05-28 12:01:08 · 1104 阅读 · 1 评论 -
【第一节】从C语言到C++
函数重载的本质,以上的同名函数,在C++看来实际上是不同的函数名称,C++为了支持这种特性,进而提出了名称粉碎/名字改编(name managling)机制,以上面的函数为例,他们的函数名分别不同。同时,增加了对面向对象编程的完全支持。在以上这个例子中,调用函数的时候,可以传递两个参数,也可以传递三个,四个,五传递的参数不足五个的时候,后面的会默认的被传递0。在C++中,还有一个不错的机制,叫做默认参数,函数声明或者定义的时候,可以给形参赋一些默认值,调用函数时,若没有给出实参,则按指定的默认值进行工作。原创 2024-05-27 16:50:30 · 1143 阅读 · 0 评论
分享