![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
学习笔记
guardwhy
这个作者很懒,什么都没留下…
展开
-
10- 运算符重载
1- 基本要求C++预定义的运算符,只能用于基本数据类型的运算:整型、实型、字符型、逻辑型…+、-、*、/、%、^、&、~、!、|、=、<<>>、!=、在数学上,两个复数可以直接进行+、-等运算。但在C++中,直接将+或-用于复数对象是不允许的。2- 运算符重载定义运算符重载,就是对已有的运算符(C++中预定义的运算符)赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为。运算符重载的目的是:扩展C++中提供的运算符的适用范围,使之能作用于对象。同原创 2020-12-28 21:04:52 · 278 阅读 · 0 评论 -
09- 成员属性
静态成员在类定义中,它的成员(包括成员变量和成员函数),这些成员可以用关键字static声明为静态的,称为静态成员。不管这个类创建了多少个对象,静态成员只有一个拷贝,这个拷贝被所有属于这个类的对象共享。静态成员变量在一个类中,若将一个成员变量声明为static,这种成员称为静态成员变量。与一般的数据成员不同,无论建立了多少个对象,都只有一个静态数据的拷贝。静态成员变量,属于某个类,所有对象共享。静态成员变量特点所有对象都共享同一份静态成员。在编译阶段就分配了内存。必须在类内声明、类外初始化。代原创 2020-12-28 20:41:47 · 245 阅读 · 0 评论 -
08-类型转换
C方式的强制类型转换代码示例#include <stdio.h>typedef void(PF)(int);// 结构体struct Point{ int x; int y;};int main(){ int v = 0x12345; // 强制类型转换 PF* pf = (PF*)v; char c = char(v); Point* p = (Point*)v; pf(5);原创 2020-12-28 20:35:03 · 78 阅读 · 0 评论 -
07-动态内存分配
动态对象创建产生条件当创建数组的时候,总是需要提前预定数组的长度,然后编译器分配预定长度的数组空间,在使用数组的时,会有这样的问题,数组也许空间太大了,浪费空间,也许空间不足,所以对于数组来讲,如果能根据需要来分配空间大小再好不过。所以动态的意思意味着不确定性。C动态分配内存为了解决这个普遍的编程问题,在运行中可以创建和销毁对象是最基本的要求。c早就提供了动态内存分配(,函数malloc和free可以在运行时从堆中分配单元。代码示例int *p = (int*) malloc( sizeof(i原创 2020-12-28 20:32:19 · 106 阅读 · 1 评论 -
06-析构函数和构造函数
析构函数创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等。特点:析构函数是一种特殊的成员函数,没有返回值,是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符号。析构函数不允许有参数 ,不可以发生重载。构造函数用途:构造函数主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。析构函数主要用于对象销毁前系统自动调用,执行一些清理工作。基原创 2020-12-28 20:30:36 · 387 阅读 · 0 评论 -
05- 类和对象
面向对象将日常生活中习惯的思维方式引入程序设计中,将需求中的概念直观的映射到解决方案中。以模块为中心构建可复用的软件系统,提高软件产品的可维护性和可扩展性C++类和对象C++是一门面向对象的编程语言,理解 C++,首先要理解**类(Class)和对象(Object)**这两个概念生活中的类和对象类类:指的是一类事物,是一个抽象的概念。类是一种模型,这种模型可以创建出不同的对象实体。对象对象实体是类模型的一个具体实例,对象:指的是属于某个类的具体实体。C++ 中的类(Class)可原创 2020-12-28 20:28:42 · 107 阅读 · 0 评论 -
04-函数重载
函数默认参数C++在声明函数原型的时可为一个或者多个参数指定默认的参数值,当函数调用的时候如果没有指定这个值,编译器会自动用默认值代替。代码示例#include <iostream>/** * 默认参数 */using namespace std;/** * 1、默认参数 ,可以给形参加默认值,如果传入值,就用用户传的实参,如果没有就用默认值 *///如果某个位置已经有了默认参数,那么从这个位置起,后面的参数都必须有默认参数。int function(int a, in原创 2020-12-28 20:25:34 · 140 阅读 · 0 评论 -
03-内联函数
内联函数产生原因C 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测和有可能带来的语意差错。宏函数和普通函数的区别优缺点宏函数普通函数优点内嵌代码,辟免压栈与出栈的开销。高度抽象,避免重复开发,类型检查缺点代码替换,易使生成代码体积变大,易产生逻辑错误, 无类型检查压栈与出栈,带来开销代码示例#include <iostream>/** * 宏函数和普通函数原创 2020-12-28 19:53:33 · 101 阅读 · 0 评论 -
02-引用
引用引用的特点**引用是c++对c的重要扩充。**在c/c++中指针的作用基本都是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按引用传递。变量名实质上是一段连续内存空间的别名,是一个标号。程序中通过变量来申请并命名内存空间通过变量的名字可以使用存储空间基本语法数据类型 & 别名 = 原名重点注意&在此不是求地址运算,而是起标识作用。类型标识符是指目标变量的类型。必须在声明引用变量时进行初始化。引用初始化之后不能改变。不能有NULL引用。必须确原创 2020-12-28 19:50:17 · 72 阅读 · 0 评论 -
01- 从C 到C++
C++的概述C++语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c++继承了c语言高效,简洁,快速和可移植的传统。c++语言融合了3种不同的编程方式:c语言代表的过程性语言.c++在c语言基础上添加的类代表的面向对象语言.c++模板支持的泛型编程。C语言和C++语言的联系C++语言是在C语言的基础上,添加了面向对象、模板等现代程序设计语言的特性而发展起来的。两者无论是从语法规则上,还是从运算符的数量和使用上,都非常相似。初识C++代码示例#include <iostrea原创 2020-12-28 19:48:06 · 164 阅读 · 0 评论