自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 4.5重载运算符

4.5 运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型4.5.1 加号运算符重载作用:实现两个自定义数据类型相加的运算class Person {public: Person() {}; Person(int a, int b) { this->m_A = a; this->m_B = b; } //成员函数实现 + 号运算符重载 Person operator+(const Person& p) { Per

2022-03-30 16:15:38 92

原创 4.4友元

4.4 友元生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为 friend友元的三种实现全局函数做友元类做友元成员函数做友元4.4.1 全局函数做友元class Building{ //告诉编译器

2022-03-30 16:11:15 126

原创 接上

`*示例2:**静态成员函数class Person{public: //静态成员函数特点: //1 程序共享一个函数 //2 静态成员函数只能访问静态成员变量 static void func() { cout << "func调用" << endl; m_A = 100; //m_B = 100; //错误,不可以访问非静态成员变量 } static int m_A; //静态成员变量 int m_B; // private:

2022-03-30 16:10:12 63

原创 4.2.8静态成员

4.2.8 静态成员静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员静态成员分为:静态成员变量所有对象共享同一份数据在编译阶段分配内存类内声明,类外初始化静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量**示例1 :**静态成员变量class Person{ public: static int m_A; //静态成员变量 //静态成员变量特点: //1 在编译阶段分配内存 //2 类内声明,类外初始化 //3

2022-03-30 16:08:09 51

原创 4.2.8静态成员

4.2.8 静态成员静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员静态成员分为:静态成员变量所有对象共享同一份数据在编译阶段分配内存类内声明,类外初始化静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量**示例1 :**静态成员变量class Person{ public: static int m_A; //静态成员变量 //静态成员变量特点: //1 在编译阶段分配内存 //2 类内声明,类外初始化 //3

2022-03-22 08:48:16 59

转载 4.2.7类对象作为类成员

4.2.7 类对象作为类成员C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员例如:class A {}class B{ A a;}B类中有对象A作为成员,A为对象成员那么当创建B对象时,A与B的构造和析构的顺序是谁先谁后?示例:class Phone{public: Phone(string name) { m_PhoneName = name; cout << "Phone构造" << endl; } ~Phone(

2022-03-14 12:13:46 92

原创 4.2.6初始化列表

4.2.6 初始化列表作用:C++提供了初始化列表语法,用来初始化属性语法:构造函数():属性1(值1),属性2(值2)... {}示例:class Person {public: ////传统方式初始化 //Person(int a, int b, int c) { // m_A = a; // m_B = b; // m_C = c; //} //初始化列表方式初始化 Person(int a, int b, int c) :m_A(a), m_B(b), m_C(c)

2022-03-14 12:13:06 711

原创 4.2.5深拷贝与浅拷贝

4.2.5 深拷贝与浅拷贝深浅拷贝是面试经典问题,也是常见的一个坑浅拷贝:简单的赋值拷贝操作深拷贝:在堆区重新申请空间,进行拷贝操作示例:class Person {public: //无参(默认)构造函数 Person() { cout << "无参构造函数!" << endl; } //有参构造函数 Person(int age ,int height) { cout << "有参构造函数!" << endl; m

2022-03-14 12:12:31 1226

转载 4.2.4构造函数调用规则

4.2.4 构造函数调用规则默认情况下,c++编译器至少给一个类添加3个函数1.默认构造函数(无参,函数体为空)2.默认析构函数(无参,函数体为空)3.默认拷贝构造函数,对属性进行值拷贝构造函数调用规则如下:如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造如果用户定义拷贝构造函数,c++不会再提供其他构造函数示例:class Person {public: //无参(默认)构造函数 Person() { cout << "无参构

2022-03-14 12:11:46 80

转载 4.2.3拷贝函数调用时机

4.2.3 拷贝构造函数调用时机C++中拷贝构造函数调用时机通常有三种情况使用一个已经创建完毕的对象来初始化一个新对象值传递的方式给函数参数传值以值方式返回局部对象示例:class Person {public: Person() { cout << "无参构造函数!" << endl; mAge = 0; } Person(int age) { cout << "有参构造函数!" << endl; mAge = age

2022-03-14 12:11:05 86

原创 4.2.2构造函数的分类和调用

4.2.2 构造函数的分类及调用两种分类方式:​ 按参数分为: 有参构造和无参构造​ 按类型分为: 普通构造和拷贝构造三种调用方式:​ 括号法​ 显示法​ 隐式转换法示例://1、构造函数分类// 按照参数分类分为 有参和无参构造 无参又称为默认构造函数// 按照类型分类分为 普通构造和拷贝构造class Person {public: //无参(默认)构造函数 Person() { cout << "无参构造函数!" << endl; }

2022-03-14 12:10:14 69

原创 4.2.1构造函数和析构函数

4.2.1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题​ 一个对象或者变量没有初始状态,对其使用后果是未知​ 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供编译器提供的构造函数和析构函数是空实现。构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译

2022-03-14 12:09:16 64

原创 【无标题】

4.1.3 成员属性设置为私有**优点1:**将所有成员属性设置为私有,可以自己控制读写权限**优点2:**对于写权限,我们可以检测数据的有效性示例:class Person {public: //姓名设置可读可写 void setName(string name) { m_Name = name; } string getName() { return m_Name; } //获取年龄 int getAge() { return m_Age; } //设置

2022-03-14 12:06:35 47

原创 1.1访问权限

类在设计时,可以把属性和行为放在不同的权限下,加以控制访问权限有三种:public 公共权限protected 保护权限private 私有权限示例://三种权限//公共权限 public 类内可以访问 类外可以访问//保护权限 protected 类内可以访问 类外不可以访问//私有权限 private 类内可以访问 类外不可以访问class Person{ //姓名 公共权限public: string m_Name

2022-03-14 12:05:19 349

原创 #### . 1.2 struct和class区别

1.2 struct和class区别在C++中 struct和class唯一的区别就在于 默认的访问权限不同区别:struct 默认权限为公共class 默认权限为私有class C1{ int m_A; //默认是私有权限};struct C2{ int m_A; //默认是公共权限};int main() { C1 c1; c1.m_A = 10; //错误,访问权限是私有 C2 c2; c2.m_A = 10; //正确,访问权限是公共 sys

2022-03-14 12:04:06 721

原创 简单计算器

#include<iostream>using namespace std;int main(){ int a,b; char d; cin>>a>>b>>d; switch(d) {case'+':cout<<a+b<<endl;break; case'-':cout<<a-b<<endl;break; case'*':cout<<a*b<<endl;break;.

2021-12-30 16:44:39 346

原创 09数字反转

数字反转描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。输出输出共 1 行,一个整数,表示反转后的新数。样例输入样例 #1:123样例 #2:-380样例输出样例 #1:321样例 #2:-83#include<io

2021-12-02 15:15:26 166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除