![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++初学
__青_木__
这个作者很懒,什么都没留下…
展开
-
12-1运算符重载
运算符重载 在C++中,同一个类型或运算符在不同的类中有不同的含义或实施不同的运算,这也是面向对象的多态性 运算符重载是使一个运算符作用于不同类型的数据时具有不同的行为 实质上,是将运算对象转化为运算函数的实参,并根据实参的类型来确定重载的运算函数 运算符重载和类型重载是多态的另外两种表现形式 实现 定义一个重载运算符的函数,在需要执行被重载的运算符时,系统自动调用该函数,以实现相应的运算。 即,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。 在定义了重载运算符的函数之后,可原创 2021-11-21 15:47:54 · 228 阅读 · 0 评论 -
11 虚函数
虚函数 概念 虚函数是动态联编的基础,允许函数调用与函数体之间的联系在运行时才建立 也就是在运行时才决定如何动作,即所谓的动态联编 虚函数是成员函数,而且是非静态成员函数 声明:virtual <类型说明符><函数名>(<参数表>) 若某类中一个成员函数被说明为虚函数,则该成员函数在派生类中可能有不同的实现。 当使用这个成员函数操作指针或引用所标识对象时,对该成员函数调用采取动态联编方式,即在运行时进行关联或束定 动态联编只能通过指针或引用标识对象来原创 2021-11-21 15:04:01 · 792 阅读 · 0 评论 -
10 多态
多态 多态性:不同对象受到相同的消息时,产生不同的动作 两种描述: 具有不同功能的函数可以用同一个函数名 指向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为 多态的实现 函数重载 运算符重载 虚函数 C++中的多态性可以分为四类 通用多态 参数多态:与类属函数和类属类相关联(函数模板和类模板就是这种多态) 包含多态:研究类族中定义于不同类中的同名成员函数的多态行为(主要是通过虚函数来实现的) 专用多态 重载多态:普通函数及类的成员函数的重载原创 2021-11-21 15:02:53 · 335 阅读 · 0 评论 -
09 嵌套类
嵌套类 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类 定义嵌套类的目的在于 隐藏类名 减少全局的标识符 从而限制用户能否使用该类建立对象 这样可以提高类的抽象能力,并且强调了两个类(外围类和嵌套类)之间的主从关系 class A { public: class B { public: ... private: ... }; void f(); privat原创 2021-11-21 15:01:46 · 76 阅读 · 0 评论 -
08 多文件
多文件 一个源程序可以划分为多个源文件 类声明文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(main()所在的.cpp文件) 利用工程来组合各个文件 ATTENTION vscode中多文件编译运行 vscode的c++配置及多文件项目编译(主要是后者) - 知乎 (zhihu.com) (1条消息) vscode 中C++运行编译运行多文件问题总结_audioFrame的博客-CSDN博客 挑把趁手的兵器——VSCode配置C/C++学习环境(小白向) -原创 2021-11-21 15:00:52 · 364 阅读 · 0 评论 -
06 const
const 1. 共用数据的保护(const的使用) 一般形式 类型名 const 对象名[(构造实参表列)] const 类型名 对象名[(构造实参表列)] attention:常对象必须要有初值(因为之后不能该值了) 限定作用 定义为const的对象的所有数据成员的值都不能修改 凡出现调用非const的成员函数,将出现编译错误(构造函数除外) Time const t1(12,34,46); //t1是常对象 t1.set_Time(); //编译错误PE,非con原创 2021-11-21 14:59:49 · 166 阅读 · 0 评论 -
05-01 对象成员
对象成员 如果一个类的对象是另一个类的数据成员,则称这样的数据成员为对象成员 class A { //... }; class B { A a; //类A的对象a为类B的对象成员 public: //... }; 对象成员的初始化 Example 1. 形参表定义 #include <iostream> using namespace std; class A { private: int x; float y; public:原创 2021-11-21 14:58:42 · 174 阅读 · 0 评论 -
05 友元
友元 概念 友元可以访问与其有好友关系的类中的成员。 友元提供不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。 实际是对封装的破坏 友元既可以是不属于任何类的一般函数,也可以是另一个类的成员函数,还可以是整个的类。 包括: 友元函数 不是当前类的成员函数,而是独立于当前类的外部函数 可以访问该类的所有对象的成员,包括私有、保护、公有成员 声明: 位置:类体中 格式:函数名前加friend 定义: 类体内:函数名前加friend Example 1. 在原创 2021-11-18 20:38:22 · 299 阅读 · 0 评论 -
04-05 静态成员
静态成员 概念 引入:实现一个类的不同对象 该类的所有对象共享静态成员 目的:实现数据共享,可以不必使用全局变量 静态数据成员 关键词:static 该类的所有对象维护该对象的同一个拷贝 必须在类外定义和初始化,用::来指明所属的类 私有静态数据成员不能被类外部函数访问,也不能用对象访问 静态成员函数 类外代码,使用类名和作用域操作符调用公有静态成员函数 静态成员函数只能引用属于该类的静态数据成员或静态成员函数 访问非静态数据成员,必须通过参数传递方式得到对象名,用过对象名访问 静态数据成员原创 2021-11-05 09:50:28 · 166 阅读 · 0 评论 -
04-04 向函数传递对象
向函数传递对象 1、向函数传递对象 对象作为参数传递给函数 向函数传递对象时,通过传值调用传递 函数中对对象的任何修改,均不影响调用该函数的对象本身 #include <iostream> using namespace std; class A { private: int x; public: A(int n) { x = n; } void set(int n) { x = n; } int get() {原创 2021-11-04 20:37:58 · 410 阅读 · 0 评论 -
04-03 对象指针
对象指针 【Example 1】 指向对象的指针 #include <iostream> using namespace std; class exe { private: int x; public: void set_x(int x) { this->x = x; } void show() { cout << x << endl; } }; int main() { exe ob, *p;原创 2021-11-04 18:18:26 · 69 阅读 · 0 评论 -
04-02 对象数组
对象数组 【Example 1】 #include <iostream> using namespace std; class exam { private: int x; public: void set_x(int n) { x = n; } int get_x() { return x; } }; int main() { exam ob[4]; int i; for (i = 0; i <原创 2021-11-04 16:12:09 · 120 阅读 · 0 评论 -
04-01 this指针
自引用指针this this指针: 成员函数隐藏定义的常量指针 类型:类的类型 指向:当前对象 通过它可以访问当前对象的所有成员 在通常情况下,this指针在系统中是隐含地存在的。也可以将其显式地表示出来。 const指针,不能在程序中修改或赋值 作用域在对象内部,可通过this访问private,public,protected属性成员 对象被创建后才给this赋值,由编译器自动完成 调用: 调用成员函数时,它被初始化为被调函数所在类的对象的地址。也就是自动地将对象的指针传给它。 不同的对象调用同一个原创 2021-11-03 22:05:08 · 76 阅读 · 0 评论 -
03-02拷贝构造函数
拷贝构造函数 一种特殊的构造函数: 形参是本类对象的引用 作用:用一个已存在的对象,初始化另一个同类的对象 也是构造函数的函数重载 调用: 通过=复制对象时,系统自动调用 特点: 函数名,同类名 没有返回值类型 只有一个参数,是同类对象的引用class& obj 每个类必须有一个拷贝构造函数 若没有显式定义,系统会自动生成缺省的拷贝构造函数 缺省的拷贝构造函数,将对象的各个数据成员拷贝给被拷贝对象的各个数据成员;两个对象的内存映像是一模一样的 缺省拷贝构造函数按成员逐一复制的过程,自动完原创 2021-10-27 14:35:03 · 67 阅读 · 0 评论 -
03-01构造函数
对象的初始化 不能在声明类时初始化数据成员 对象的初始化方法 调用对外接口public成员函数实现 构造函数实现 构造函数 构造函数是一种特殊的成员函数 它主要用于为对象 分配空间 进行初始化 特点: 函数名与类名相同 没有返回类型(有隐含的返回值,系统内部使用) 不能被显式调用 函数体可以写在类体内或类体外 可以重载 不能继承 一般声明为公有函数 两种方式: 构造函数体内赋值语句 class Date{ public: Date(int y, int m, int d) { yea原创 2021-10-26 21:49:36 · 80 阅读 · 0 评论 -
02-02C++结构
C++程序一般结构由类的声明、定义、使用组成 类的使用一般在主函数及其子函数中 #include <iostream> // 预处理命令 using namespace std; /* 类的声明 */ class Student // 声明一个类,类名为Student { private: // 以下为类中的私有部分 int num; // 私有变量num int score; // 私有变量score public: // 以下为类中的公用部分原创 2021-10-26 20:35:59 · 66 阅读 · 0 评论 -
02-01对象&类
相关概念 1、对象&类 对象,存在的相对独立的个体 具有:静态属性、动态行为 类,是对具有相同属性和行为的对象的抽象 2、封装 封装体:把对象的属性和行为组成一个独立的单位 具有独立性、隐藏性 封装体与外部通过有限的接口联系 C++中,类支持数据的封装,对象是数据封装的实现 类中成员有不同的访问权限 3、继承 表现特殊类和一般类的关系,提高了重用性,简化了对于客观事物的描述 支持单重继承和多重继承 4、多态性 多态性,一种行为对应着多种不同的实现 体现在: 支持函数重载、运算符重载 支持动态联编 5原创 2021-10-26 20:08:44 · 76 阅读 · 0 评论 -
01-3.9带有缺省参数值的函数
在C++中,函数的参数可以有缺省值。当调用有缺省参数的函数时,如果相应的参数没有给出实参,则自动用相应的缺省参数值作为其实参。 函数的缺省参数,是在函数原型中给定的。 如, int init(int x=5, int y=10); 则如下调用是允许的: init(100,80); init(25); init(); 说明: (1)在函数原型中,所有取缺省值的参数必须出现在不取缺省值的参数的右边。 如:int fun(int I,int j=5,int k); //错误 int fun(int I,原创 2021-10-22 17:14:03 · 925 阅读 · 0 评论 -
01-3.8内联函数
调用函数时系统要付出一定的开销,用于信息入栈出栈和参数传递等。 特别是对于那些函数体较小但调用又较频繁的函数,计算机的开销相对就比较可观。 在C语言中,用宏替换,可解决这个问题。 如下代码,用宏替换时,可写为:#define add(x,y) x+y add(int x,int y) { return x+y; } 宏替换实质上是文字替换。 C++引进了内联函数(inline function)的概念。 内联函数与宏不同之处在于,内联函数在编译的时候进行文字替换。 在进行程序的编译时,编译器将内联函数的原创 2021-10-22 16:54:55 · 162 阅读 · 0 评论 -
01-3.7void型指针
void 通常表示无值。 将void作为指针的类型时,它表示不确定的类型。 这种 void 型指针是一种通用型指针,也就是说任何类型的指针值都可以赋给void类型的指针变量。 void pa; //错误,不能声明void 类型的指针变量 void* pc; //正确,可以声明void类型的指针 int i=456; char c=‘a’; pc=&i; pc=&c; void型指针可以接受任何类型的指针的赋值,但对已获值的void型指针,对它在进行处理(如输出或传递原创 2021-10-22 16:36:57 · 58 阅读 · 0 评论 -
01-3.6const修饰符和指针
const与指针 指向常量的指针 指向常量的普通指针变量 const char *name="chen"; //name是指向一个常量的指针变量 name[2]='a'; //错 name="zhang"; //对 常指针 指针变量是常量,指向固定的存储单元 char *const name="chen"; //name是一个常量,它指向固定的存储单元。地址不能变 name[2]='a'; //对 name="zhang"; //错 指向常量的常指针 指针是常量,它指向固定的存储单元 所指向的内容也是常原创 2021-10-22 16:14:36 · 41 阅读 · 0 评论 -
01C++基础
原创 2021-10-22 15:55:26 · 42 阅读 · 0 评论 -
000-说明
说明 本栏中文章为博主学习C++中的笔记和总结 可能有错误或不足,欢迎指出原创 2021-10-27 13:04:48 · 59 阅读 · 0 评论