黑马C++再补

(1)class 类---重点

# 课程链接:

16 类和对象-封装-属性和行为作为整体_哔哩哔哩_bilibili

# (1)笔记-1-类封装

        # 1)设计一个类及其代码和注释。同时注意,类中的属性(变量)和行为(方法)均称为成员,前者为成员属性或成员变量;后者为成员函数或成员方法。


# (2)笔记-2-访问权限

                1)基本概念

                2)

                3)代码实践:

                 错误如下所示。


# (3)笔记-3-class 和 struct 的区别

                1)基本概念,在 C++ 中,class 和 struct 基本相同,唯独权限不同。


# (4)笔记-4-成员属性私有化

                1)基本概念

                2)代码实践,本段代码体会下即可。 

                3)代码实践,如何校验数据的合法性。注意只是 return; 代表退出当前函数。 


# (5) 构造函数和析构函数

                1)构造函数和析构函数都是编译器自己调用的,不管我们有没有写这个函数,编译器都会调用,如果我们写了就用我们的,如果我们没写,编译器会自己写好这两个函数,但只是类似声明而已,函数体是空的,也就是所谓的空实现。

                2)构造函数 

                3)析构函数

                4)实际上,总结一下就是对象的初始化和清理操作。其中,利用构造函数,进行初始化操作,以下是代码实现。

                5)析构函数清理对象


# (5) 构造函数的分类以及调用

                1)


# (6) 拷贝构造函数的调用时机

                1)基本概念

                2)代码实践,慢慢体会

#include <iostream>

using namespace std;
#include <string>

class Person
{
	int m_Age;

public:
	Person()
	{
		m_Age = 0;
		cout << "Person 默认构造函数调用" << endl;
	}

	Person(int age)
	{
		// 有参构造函数
		m_Age = age;
		cout << "调用有参的" << endl;
	}

	// 拷贝构造
	Person(const Person& p)
	{
		m_Age = p.m_Age;
		cout << "拷贝构造函数" << endl;
	}

	~Person()
	{
		cout << "析构了" << endl;
	}

	
};


void test01()
{
	// 拷贝构造函数的调用时机
	/*
		(1) 使用一个已经创建的对象,来初始化一个新对象;【常用】
	*/
	//(1)的用法如下

	Person p1(20);
	Person p2(p1);

}


void doWork(Person p)
{

}
void test02()
{	
	// 拷贝构造函数的调用时机
	// (2) 值传递的方式给函数参数传值
	Person p;
	doWork(p);
}

// (3) 以值方式返回局部对象
Person doWork2()
{
	Person p;		// 创建一个对象 p
	return p;		
}
void test03()
{
	// 执行拷贝构造函数
	Person p1 = doWork2();

}


int main()
{
	//test01();
	test03();
	return 0;
}


# (7) 构造函数的调用规则

                1)基本概念

                2)代码就不写了,反正只要知道,如果给了构造函数,没给拷贝构造函数,那么系统(编译器)就不会自己给构造函数,但会给拷贝构造函数。如果自己给了拷贝构造函数,那么系统就不会给构造函数。


# (8) 深拷贝和浅拷贝

                1)基本概念

                2)参考链接:27 类和对象-对象特性-深拷贝与浅拷贝_哔哩哔哩_bilibili


# (9)类的初始化列表

                1)基本概念

                     

                2)代码实践


# (10)类对象作为类成员

                1)基本概念

                2)代码实践


# (11)静态成员

                1)基本概念


# (12)32 类和对象-对象特性-成员变量和成员函数分开存储

                1)基本概念

                2)代码实践


# (13)33 类和对象-对象特性-this指针的用途

                1)基本概念

                2)代码实践,实际上对于每个属性,如成员属性 m_A,那么我们在访问 m_A 时,如 cout << m_A << endl; 这段代码,实际上是隐含了 this 指针的,即该代码相当于

cout << this->m_A << endl;


# (14)空指针访问成员函数

                1)基本概念

                2)代码实践


# (15)对象特性-const 修饰成员函数

                1)基本概念

                2)代码实践---常函数

                3)代码实践---常对象

#

(3)函数重载

# 课程链接:

14 函数高级-函数重载-基本语法_哔哩哔哩_bilibili

# 笔记

#(1)函数重载的概念

#  (2)函数重载的理解,如下代码。

                1)形参类型不同。

                2)形参个数不同。

                3)形参顺序不同。

                4)函数返回值不可以作为重载的条件。 

# (3)函数重载注意事项

# 链接:15 函数高级-函数重载-注意事项_哔哩哔哩_bilibili

#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值