
跟着做的C++20教程
文章平均质量分 58
EniacCheng
80后古板程序员
电子游戏爱好者
展开
-
跟着做的C++20教程-实例33-Lambda的捕获子句(Capture Clause)
目录实例概要实例代码实例结果实例解释实例扩展实例概要介绍lambda表达式中的捕获子句。[](){}是Lambda表达式三个主要部分,其中[]为捕获子句(本实例要介绍的内容);()是参数列表;{}函数体。实例代码int main(int argc, char** argv){ int a = 0; int b = 0; auto capturedByReferennce = [&]() {a = 3; b = 4; }; capturedByReferennce(); st原创 2021-03-27 21:51:06 · 856 阅读 · 2 评论 -
跟着做的C++20教程-实例32-module
目录实例概要实例代码实例解释Visual Studio的设置实例概要介绍C++20模块概念实例代码MyModule.ixxmodule;#include "iostream"export module MyModule;export void MyFunc(){ std::cout << "This is my function" << std::endl;}mian.cppimport MyModule;int main(int argc, cha原创 2021-03-23 10:53:00 · 2638 阅读 · 1 评论 -
跟着做的C++20教程-实例31-explicit
目录实例概要实例代码运行结果实例解释实例概要介绍关键字explicit的作用实例代码#include <iostream>#include <string>class Person{public: /*explicit*/ Person(int age) { m_age = age; } int getAge() { return m_age; }private: int m原创 2021-03-02 16:40:42 · 457 阅读 · 0 评论 -
跟着做的C++20教程-实例30-public 继承
目录实例概要实例代码运行结果实例解释实例概要介绍public继承时,父类public、private、protected成员的不同表现。实例代码#include <iostream>#include <string>class Person{public: int m_weight { 1 };protected: int m_height{ 2 };private: int m_age{ 3 };public: int g原创 2021-03-01 16:48:12 · 234 阅读 · 0 评论 -
跟着做的C++20教程-实例29-继承
目录实例概要实例代码运行结果实例解释实例概要继承实例代码#include <iostream>#include <string>class Person{public: std::string m_name; int m_age;};class Employee :public Person{public: std::string m_department;};int main(int argc, char** arg原创 2021-02-28 07:21:07 · 340 阅读 · 0 评论 -
跟着做的C++20教程-实例28-异常
目录实例概要实例代码运行结果实例解释实例概要异常实例代码#include <iostream>#include <string>void throwException(){ std::cout << "抛出异常前" << std::endl; throw "出现了异常"; std::cout << "抛出异常后" << std::endl;}int main(int argc, ch原创 2021-02-26 16:46:41 · 197 阅读 · 0 评论 -
跟着做的C++20教程-实例27-移动拷贝构造函数
目录实例概要实例代码运行结果实例解释实例概要介绍移动拷贝构造函数实例代码#include <iostream>#include <string>class MoveCopy{public: char* info = nullptr; MoveCopy(){}; MoveCopy(MoveCopy&& src) noexcept //移动拷贝构造函数 { info = src.info;原创 2021-02-25 16:32:06 · 248 阅读 · 0 评论 -
跟着做的C++20教程-实例26-深拷贝和浅拷贝
目录实例概要实例代码实例解释实例概要对比浅拷贝和深拷贝实例代码#include <iostream>#include <string>class ShallowCopy{public: char* info = nullptr; size_t infoLength = 0; ShallowCopy(){}; ShallowCopy(const ShallowCopy& src) { infoLeng原创 2021-02-24 15:43:59 · 268 阅读 · 0 评论 -
跟着做的C++20教程-实例25-拷贝构造函数
目录实例概要实例代码实例解释实例概要实例代码实例解释原创 2021-02-23 15:54:38 · 197 阅读 · 0 评论 -
跟着做的C++20教程-实例24-引用、变量与对象
实例概要对象概念引用与变量的关系,及使用方式实例代码#include <iostream>class Person{public: int m_age; double m_weight; Person(int age, double weight) :m_age{ age }, m_weight{weight} { std::cout << "执行了两个参数的构造函数" << std::endl;原创 2021-02-22 09:11:57 · 219 阅读 · 0 评论 -
跟着做的C++20教程-实例23-构造函数
目录实例概要实例代码实例解释实例概要构造函数概念实例代码#include <iostream>class Person{public: int m_age; double m_weight; Person():m_age(30),m_weight(75.3) { std::cout << "执行了无参数构造函数" << std::endl; } Person(int age, doub原创 2021-02-21 06:13:33 · 309 阅读 · 0 评论 -
跟着做的C++20教程-实例22-private
目录实例概要实例代码实例解释实例概要private关键字类方法实例代码#include <iostream>class Myself{public: int age = 32; double weight = 80.00;private: double salary = 0;public: double getSalary() //在声明中定义 { if (salary < 1000.0) { return 1000.0; } e原创 2021-02-19 05:33:14 · 539 阅读 · 2 评论 -
跟着做的C++20教程-实例21-最简单的函数模板
目录实例概要实例代码实例解释实例概要介绍模板概念实例代码#include <iostream>#include <string>template<typename T> void printT(T p1);int main(int argc, char** argv){ int i = 0; double d = 1.3; std::string c = "I am a string"; printT(i); printT(d); p原创 2021-02-18 05:02:01 · 301 阅读 · 1 评论 -
跟着做的C++20教程-实例20-最简单的lambda
目录实例概要实例代码实例解释实例概要最简单的lambda表达式实例代码#include <iostream>#include <string>int main(int argc, char** argv){ auto lambda = [] {std::cout << "I am a lambda" << std::endl; }; lambda(); return 0;}运行结果I am a lambda实例解释原创 2021-02-17 04:33:40 · 479 阅读 · 0 评论 -
跟着做的C++20教程-实例19-函数指针
目录实例概要实例代码实例解释实例概要函数指针的定义和使用实例代码实例中定义两个函数,一个将所有信息显示在一行,一个将信息显示在多行。对象可以根据自己的需要选择使用哪个函数,实现方式就是函数指针。#include <iostream>#include <string>void printMyInfoInSingleLine(int , double, std::string&);void printMyInfoInMultipleLine(int, doubl原创 2021-02-16 07:06:20 · 237 阅读 · 0 评论 -
跟着做的C++20教程-实例18-初识类
目录实例概要实例代码实例解释实例概要类的概念和使用实例代码#include <iostream>class Myself{public: int age = 32; double weight = 80.00;};int main(int argc, char** argv){ Myself thisYear; std::cout << "In this year, my age is " << thisYear.age <&l原创 2021-02-15 07:10:52 · 258 阅读 · 1 评论 -
跟着做的C++20教程-实例17-函数重载(overload)
目录实例概要实例代码运行结果实例解释实例概要函数重载实例代码#include <iostream>void overloadFunction(double);void overloadFunction(int);int main(int argc, char** argv){ overloadFunction(3); overloadFunction(1.4); return 0;}void overloadFunction(double) { std:原创 2021-02-14 07:22:19 · 259 阅读 · 1 评论 -
跟着做的C++20教程-实例16-函数默认参数
目录实例概要实例代码运行结果实例解释实例概要函数的默认参数实例代码#include <iostream>void defaultParameter(int a, int b = 3);int main(int argc, char** argv){ //a b都传值 std::cout << "a b都传值" << std::endl; defaultParameter(3, 5); //只传a的值 std::cout << "原创 2021-02-13 06:00:45 · 149 阅读 · 0 评论 -
跟着做的C++20教程-实例15-变参函数
目录实例概要实例代码运行结果实例解释实例概要变参函数va_listva_startva_copyva_endva_arg实例代码#include <iostream>#include <cstdarg>void variadicFunc(int count...);int main(int argc, char** argv){ variadicFunc(5, 50, 60, 70, 80, 90); return 0;}void var原创 2021-02-12 05:00:52 · 236 阅读 · 0 评论 -
跟着做的C++20教程-实例14-函数
目录实例概要实例代码运行结果实例解释实例概要函数的定义和使用实例代码#include <iostream>int add(int, int);//这是函数声明int main(int argc, char* argv[]) { auto a = 0; auto b = 0; std::cout << "请输入两个整数,用空格分开,按Enter确认:"; std::cin >> a; std::cin >> b; auto aA原创 2021-02-11 06:30:27 · 233 阅读 · 0 评论 -
跟着做的C++20教程-实例13-bool
@[TOC]目录实例概要bool比较操作符实例代码#include "iostream"int main(int argc, char** argv){ bool isEqual = false; int first = 0; int second = 0; std::cout << "请输入第一个整数:" << std::endl; std::cin >> first; std::cout << "请输入第二个整数:" &l原创 2021-02-10 05:33:31 · 398 阅读 · 0 评论 -
跟着做的C++20教程-实例12-if
目录实例概要实例代码实例解释实例概要std::cin语句块的概念ifelse ifelse实例代码#include "iostream"int main(int argc, char** argv){ auto score = 0; std::cout << "请输入一个分数" << std::endl; std::cin >> score; if (score > 89) { std::cout << "恭喜原创 2021-02-09 10:43:00 · 390 阅读 · 0 评论 -
跟着做的C++20教程-实例11-auto初识
ul是unsigned long吗:1。ui是unsigned int吗:1。ld是long double吗:1。d是double吗:1。f是float吗:1。原创 2021-02-08 05:44:09 · 531 阅读 · 3 评论 -
跟着做的C++20教程-实例10-浮点数(小数)
目录实例概要实例代码实例解释浮点数计算机如何表示小数浮点数类型数字后缀实例概要floatdoublelong double实例代码int main(int argc, char** argv){ float f = 1.0f; double d = 2.0; long double ld = 3.0L; std::cout << "单精度浮点数字节长度:" << sizeof(f) << std::endl; std::cout <&l原创 2021-02-08 04:59:49 · 501 阅读 · 0 评论 -
跟着做的C++20教程-0009-实例8-整型变量汇总
目录实例概要实例代码实例解释整型变量signed数字后缀实例概要charunsigned charshortunsigned shortintunsigned intlongunsigned longlong longunsigned long long实例代码#include <bitset>#include <iostream>int main(int argc, char** argv){ char c = 2; unsigned ch原创 2021-01-25 06:12:07 · 256 阅读 · 1 评论 -
跟着做的C++20教程-0008-实例7-无符号整数类型变量(unsigned int)
目录实例概要实例代码实例解释无符号整型变量定义无符号整型变量有符号和无符号的内存值实例概要无符号整型变量实例代码#include <bitset>#include <iostream>int main(int argc, char** argv){ //定义无符号整形变量 unsigned int a = 99999; std::cout << a << std::endl; a = -1;//将负数赋值给无符号整型变量 int原创 2021-01-25 05:44:01 · 2802 阅读 · 2 评论 -
跟着做的C++20教程-0007-实例6-整数类型变量(int)
目录实例概要实例代码实例解释扩展练习实例概要整数类型变量两种新的初始化变量的方式sizeof()实例代码#include <iostream>int main(int argc, char** argv){ int i1 = 1234567; int i2( 1234567 ); int i3{ 123'345'6 }; std::cout << "变量i1的值:" << i1 << std::endl; std::cout原创 2021-01-19 16:46:02 · 230 阅读 · 0 评论 -
跟着做的C++20教程-0006-实例5-数组
目录实例概要实例代码实例解释扩展练习实例概要介绍数组概念、如何使用数组实例代码#include <iostream>int main(int argc, char** argv){ char a[3] = { 'A', 'B', 'C'}; char b = 'A'; std::cout << "变量a的值:" << (int)a << std::endl; std::cout << "变量b的值:" << (原创 2021-01-13 16:09:40 · 237 阅读 · 0 评论 -
跟着做的C++20教程-0005-实例4-指针
目录实例概要实例代码实例解释取变量代表的地址定义指针使用和修改指针的值使用和修改指针的值代表的内存空间的值扩展练习实例概要指针概念、如何使用指针实例代码#include <cstddef>#include <bitset>#include <iostream>int main(int argc, char** argv){ char a = 'A'; //定义一个char类型变量,初始值为'A' char* b = &a; //定义一个cha原创 2021-01-12 09:52:08 · 166 阅读 · 0 评论 -
跟着做的C++20教程-0004-实例3-数据类型-char
目录实例概要实例代码实例概要介绍 unsigned char介绍 signed char实例代码#include <bitset>#include <iostream>int main(int argc, char** argv){ unsigned char a = 255; signed char b = 255; std::cout << std::bitset<8>(a) << std::endl; std:原创 2021-01-10 03:27:47 · 266 阅读 · 0 评论 -
跟着做的C++20教程-0003-实例2-注释(comment)
目录实例概要实例代码实例解释扩展联系实例概要介绍什么是注释,如何使用注释。实例代码main.cpp/*文件:main.cpp作用:显示This is main() function字符串*/#include <iostream>int main(int argc, char** argv){ std::cout << "This is main() function" << std::endl; //显示"This is main() func原创 2021-01-08 15:41:27 · 409 阅读 · 0 评论 -
跟着做的C++20教程-0002-实例1-main函数
目录实例概要实例代码实例解释实例结构语句如何运行扩展练习实例概要介绍main()函数。介绍如何在visual studio中编写程序和运行介绍***语句***概念实例代码main.cpp#include <iostream>int main(int argc, char** argv){ std::cout << "This is main() function" << std::endl; return 0;}执行结果实例解释原创 2021-01-08 05:28:05 · 591 阅读 · 0 评论 -
跟着做的C++20教程-0001-环境搭建
目录说明下载安装说明由于是面向初学者的博客,而且本系列博客的目的是想让大家跟着实例学习,因此最简单的编程环境是最适合本博客的。虽然现在有众多的优秀的C++IDE,但是visual studio是最适合的因为它开箱即用,并且MSVC编译器支持绝大多数C++20的特性。下载官网地址:https://visualstudio.microsoft.com/zh-hans/products/进入官网地址后点击:下载然后选择“社区版”社区版是免费开放给个人使用的,其他两个版本是付费的(当然网上有破解的,但原创 2021-01-08 04:37:07 · 1108 阅读 · 0 评论 -
跟着做的C++20教程-0000-前言
目录原因目标读者编写思路原因C++是一个不断进化的语言,从1998年ISO批准C语言成为国际标准之后,共经历了6个标准(标准文档为“ISO/IEC 14882: PROGRAMMING LANGUAGES — C++”)版本分别是:1998、2003、2011、2017和2020。其中最新版2020发布于2020-12-15。本人在近十年的程序员生涯中也在跟着C++的进化学习着,但在学习的过程中发现很少有一份教程能够简明地将C++的特征介绍清楚。翻译而来的作品多少都有点水土不服。而国内作者大多都是资深原创 2021-01-07 16:05:28 · 789 阅读 · 3 评论