C++学习笔记
文章平均质量分 61
胖虎干嘛了
这个作者很懒,什么都没留下…
展开
-
C++从头再来:知识点速通
C++ 基础函数速通原创 2023-03-07 11:06:36 · 454 阅读 · 0 评论 -
算法学习笔记(C++)——排序与查找
输入学生的姓名和分数,期待以降序或升序的方式输出学生姓名和分数,当学生分数相同时,期望先录入的同学先输出。输入:第一行学生数目n第二行排序方式(0为降序,1为升序)后续n行分别为:姓名+空格+分数输出(n行):每行的内容分别为:(按指定方式排序后的)姓名+空格+分数注:sort默认为int类型的升序在本题中,由于需要将姓名、成绩、输入次序一并保存,故而封装了结构体Student,需要使用自己定义的Compare函数。# include <cstdio># include &原创 2022-04-30 16:41:00 · 1211 阅读 · 0 评论 -
算法学习笔记(C++)—暴力求解之日期换算
给定一年中的年月日,计算该日期加上若干天后是什么日期?关于输入:第一行输入样例个数m, 在下面的m行中,每行分别输入4个整数,表示年月日和增加的天数关于输出:输出m行,每行按照“04d-02d-02d”的格式输出,例如“2001-01-01”分析:可以采取先计算出该日期在本年中是第几天;加上经过的天数并判断是否有“跨年”情况的出现,若有则更新年份;最后将总天数再转化为日期的形式。注:关于指定格式的输出,如%2d 表示输出宽度为2的整数,如果超过2位则按照实际情况输出,否则右对齐输出;%0原创 2022-04-30 15:26:35 · 801 阅读 · 0 评论 -
C++学习笔记:虚函数和多态
虚函数和多态虚函数多态的表现形式一二多态程序实例虚函数定义:在类的定义中,函数声明前有virtual关键字的成员函数就是虚函数如下所示,需要注意的是,关键字virtual只需要在类定义的函数声明中使用,而在描述函数体时不加virtualclass base{ virtual int get();};int base::get() { }注意:构造虚函数的存在使C++语言中实现多态的前提条件。虚函数的存在使得C++从基于对象的程序设计语言升级为面向对象的程序设计语言多态的表现形式一原创 2021-08-22 19:03:39 · 261 阅读 · 0 评论 -
C++学习笔记:覆盖与派生类的构造函数
覆盖与派生类的构造函数覆盖类的保护成员覆盖派生类可以定义一个和基类同名的成员,这叫做覆盖。在派生类中访问这类成员的时候,缺省情况下将访问派生类中定义的成员;如果在派生类中访问基类定义的同名成员时,需要使用作用于符号::一个实例:class base{ int j; public: int i; void func();};class derived:public base{ public: int i; void access(); void func();}v原创 2021-08-19 17:17:10 · 490 阅读 · 0 评论 -
C++:继承、派生与复合——概念与实战
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-08-19 01:57:50 · 447 阅读 · 0 评论 -
C++学习笔记:运算符重载实战——可变长整型数组
可变长整型数组可变长整型数组可变长整型数组原创 2021-08-17 18:32:16 · 966 阅读 · 0 评论 -
C++学习笔记:运算符重载
运算符的重载定义目的性质说明赋值运算符的重载在编程过程中,有时希望使对象也能够通过运算符进行运算,可以使得代码更加容易理解,比如说数学上复数的+、-运算,但C++中,无法对两个复数对象直接应用+或-运算符。我们希望能够写出 Complex_a + Complex_b 这样的语句。定义运算符重载,就是对已有的(C++中预定义好的)运算符赋予多重的含义,使对同一运算符作用于不同类型的数据时导致不同类型的行为。也就是说,对于同一个运算符,针对不同类型的操作数,所发生的的行为也就不同。运算符的重载,其实原创 2021-08-16 22:23:53 · 141 阅读 · 0 评论 -
C++学习笔记:静态成员
这里写目录标题基本概念访问静态成员的方法基本概念静态成员,分为静态成员变量和静态成员函数两大类。所谓静态成员,是在定义前面加了static关键字的成员。对于普通成员变量,每个对象有各自的一份数据;对于静态成员变量,所有对象共享共同的一份数据。class CMyclass{ int n; static int s;};int main(){ CMyclass A ; std::cout << sizeof(A) << std::endl;//输出4 std::原创 2021-08-16 02:53:13 · 101 阅读 · 0 评论 -
C++学习笔记:析构函数——Destructors
Destructors——析构函数析构函数定义析构函数定义关于析构函数的写法,其名字与类名相同,在前加"~",无参数无返回值,且,一个类最多只能有一个析构函数。若不编写析构函数,则在编译时会自动生成默认析构函数,默认析构函数没有其他功能。析构函数在对象消亡时可以被自动调用,可以在对象消亡前做一些善后工作,比如特殊语句的生成、释放分配的空间等等。一个实例:class String{ private : char * p; public: String(){//构造函数 p =原创 2021-08-14 13:36:28 · 641 阅读 · 0 评论 -
C++学习笔记:类型转换构造函数
类型转换构造函数类型转换构造函数定义性质与使用类型转换构造函数定义为了实现类型的自动转换,我们设置类型转换构造函数,生成一个无名的临时对象(or 临时变量)。当构造函数只有一个参数,且构造函数不是复制构造函数的,一般均看做转换构造函数。性质与使用其实在之前《C++学习笔记:构造函数——Constructor》一文中出现过的实例,可以看到类型转换构造函数的身影。忘了的可以传送过去瞅一瞅哈~~《C++学习笔记:构造函数——Constructor》class Complex{ public:原创 2021-08-13 00:53:50 · 2828 阅读 · 1 评论 -
C++学习笔记:复制构造函数——Copy Constructor
Copy Constructor——复制构造函数基本概念复制构造函数起作用的三种情况基本概念对于复制构造函数,其参数固定只有一个,是对同类对象的引用。其形式上,为X::X( X & )或X::X(const X &),X::X( X )形式的函数是不存在的。类似于构造函数,当我们没有定义复制构造函数是,编译器会生成默认的复制构造函数,仅完成完全的复制功能。调用默认复制构造函数的实例:class Complex{ private: double real, imag;};原创 2021-08-13 00:27:41 · 392 阅读 · 0 评论 -
C++学习笔记:构造函数——Constructor
Constructor——构造函数构造函数构造函数在数组中的使用构造函数构造函数作为成员函数的一种,其名字与类的名字相同。构造函数允许有参数存在,但不能有返回值,甚至函数名前不能标有返回值类型。功能上,构造函数并不负责为对象分配空间,仅负责对已经生成的对象进行初始化,比如给成员变量赋初值、输出特定语句等等。我们知道有时候对象没有被初始化时直接调用,容易使得程序出错,构造函数的存在,能够避免Init函数的额外调用,也能够避免忘记调用初始化函数。构造函数是一定存在的,如果在类的定义时没有写明构造函数,原创 2021-08-12 17:50:38 · 352 阅读 · 0 评论 -
C++学习笔记:内联函数、函数重载与缺省参数
函数在写法上的几个方法内联函数函数重载函数缺省参数内联函数在Python中的存在宏定义中,可以将指定的数字常量、表达式或代码段函数重载函数缺省参数原创 2021-08-12 15:19:43 · 182 阅读 · 0 评论 -
C++学习笔记:动态内存分配
动态内存分配关于动态内存分配用new运算符实现动态内存分配通过delete运算符释放动态分配到的内存关于动态内存分配在程序运行中,对于相应的变量或数组,需要多少空间,则动态地分配多少内存空间,这显然能够提高程序运行的效率用new运算符实现动态内存分配(1)new分配一个变量格式如下,T为变量类型名,P为类型为T * 的指针。int * P;P = new T;可以动态分配出一篇大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给P。动态分配的结果是得到一个指针例如原创 2021-08-11 14:51:03 · 161 阅读 · 0 评论 -
C++学习笔记:const关键字
关于const常量关键字的用法1. 定义常量如const int MAX_VAL =23;const string SCHOOL_NAME = "Peking University"2. 定义常量指针注意,对于常量指针,不可通过常量指针修改其指向的内容,但可以修改常量指针的指向int n,m;const int * p = & n;* p = 5;//在此编译出错:不能通过常量指针修改其指向的内容n = 4;//但可以直接修改原变量p = &m;//可以对常量指针的指原创 2021-08-11 03:01:30 · 108 阅读 · 0 评论 -
C++学习笔记:引用与常引用
引用的概念如何定义一个引用对于如下引用int n = 4;int & r = a;即使用r,对a变量进行引用,r 的类型为int &,可以理解为r是a的一个别名。值得注意的是,引用仅可引用变量而不能引用常量与表达式。对r(或a)进行的操作,等价于对a(或r)进行的操作,如下#include <stdio.h>#include <iostream>int main(){ int a = 4; int & r = a;原创 2021-08-11 02:46:06 · 326 阅读 · 0 评论 -
浅析何谓“面向对象的程序设计”
C++面向对象程序设计1. 程序设计的分类2. 面向对象程序设计的特点3. C++中的“类”编写实例关于类的用法1. 程序设计的分类关于程序设计,分为两类,面向对象的程序设计与结构化程序设计。直接来说,在结构化程序设计中,程序=数据结构+算法。程序由全局变量以及众多相互调用的函数组成,各个函数之间可以互相调用,各个函数也可以使用各个(全局)变量,如下图所示。这种编程方法,在程序较为短小时还好,当工程规模愈发庞大,就会变得难以理解,错综复杂的关系也会使得程序扩充与重用性差、难以查错、没有“封装”和“原创 2021-08-02 18:52:10 · 392 阅读 · 0 评论