C++_面向对象介绍

介绍

面向对象

  • What(为什么使用面向对象)
    1.适合开发大型软件
    2.数据抽象、代码复用、提升效率、降低成本
    3.可利用已有现成的设计模式和应用框架
  • Where(什么是面向对象)
    1.将软件看成对象组成的空间,每个对象都拥有足够智能,能了解其他对象信息,并做出反应
    2.底层对象 能从 高层对象 继承 属性和行为
    3.面向对象三大特性:封装、继承、多态
  • Why(怎么学习面向对象)
    1.理解封装、继承、多态
    2.学习设计模式,利用别人成功经验

类(class)和对象

  • What(为什么使用类和对象)
    1. 用来形容现实中 真实的对象 在虚拟世界中进行 实例化
  • Where(什么是类和对象)
    1.拥有 相同属性(类型表示)行为(函数表示) 的一组对象
    2. 是一种用户自定义的 类型数据,包括表示属性的成员变量和表示行为的成员函数
    3. 是在现实世界对象的 抽象对象 是类在虚拟世界的 实例
  • Why(怎么学习类和对象)
    1.类的组成方式图示:
    在这里插入图片描述

访问控制限定符

关键词作用
public:(公有成员)
谁都可以访问
protected:(保护成员)
只有在 类 内部和 派生类 内部可以访问
private:(私有成员)
只有 类 内部可以访问

源码:

#include<iostream>

using namespace std;
//构造一个类
class YiHang{
//公有成员
public:
	void set_sex(char* sex)//通过传参修改私有变量内容
	{
		strcpy(S_sex, sex);
	}
	void get_sex()//访问私有变量
	{
		cout << S_sex << endl;//内部访问私有变量
	}
	void get_name()
	{
		cout << "一航ciao" << endl;
	}
	int age = 18;//公有成员
//私有成员
private:
	char S_sex[20];//私有成员
};

void main()
{
//栈区对象
	YiHang yh;//类型名
//打印名字
	yh.get_name();

//打印性别
	//yh.sex;//外部无法访问的(会直接报错)
	//外部传参到内部
	yh.set_sex("男");
	//访问私有变量
	yh.get_sex();
	
//打印年龄
	//公有变量age:可以通过外部访问修改变量
	yh.age = 19;
	cout << yh.age << endl;
	
//堆区对象
	YiHang *Pyh = new YiHang;
	Pyh->age = 20;//访问方式
	cout << yh.age << endl;
	delete Pyh;
	
//创建多个栈区对象
	YiHang yh2[4];
	yh2[1].age = 16;
	cout << yh2[1].age << endl;

//创建多个堆区对象
	YiHang *Pyh2 = new YiHang[3];
	Pyh2[1].age = 20;//访问方式
	cout << Pyh2[1].age << endl;
	delete[] Pyh2;
	
	system("pause");
}

封装

  1. 将实现的细节隐藏,暴露公有接口(留后门)
  2. 对不同成员控制访问属性加以区分,体现了C++ 面向对象的封装性

string(字符串)

头文件:#include
此 类 内部提供了多个函数操作
详情参考:basic_string 类

源码

#include<iostream>
#include<string>

using namespace std;

void main()
{
	//字符串创建:
	string s1("hello");
	string s2 = "world";
	string* s3 = new string("space");

	//复制操作
	string s4 = s2;//将s2的复制到s4
	cout << s4 << " ";

	s1 = s2;//将s2的复制到s1
	cout << s1 << endl;

	//比较
	if (s1 == s4)
	{
		cout << "yes" << endl;
	}
	s1 = "12z";
	s2 = "123";
	if (s1 > s2)//比较大小是通过ASCII码逐个比较大小
	{
		cout << "yes" << endl;
	}

	//拼接
	s4 = s4 + " world";
	cout << s4 << endl;
	s4 += " space";
	cout << s4 << endl;
	s4.append(" yi");//末尾处插入
	cout << s4 << endl;
	s4.push_back('!');//末尾处插入单个字符
	cout << s4 << endl;

	//交换
	s1.swap(s4);//将s4字符串交换到s1
	cout << "交换后s1 = " << s1 << endl;
	cout<< "交换后s4 = " << s4 << endl;

	//长度
	cout << sizeof(s1) << endl;
	cout << s1.length() << endl;

	//替换
	/*********************************************************
	代码解释:
	s1.replace(需要替换的字符串,需要替换的长度,替换后的字符串)
	s1.find(查找指定字符串, 从第几个开始查找)
	*********************************************************/
	s1.replace(s1.find("world", 0), 5, "12345");
	cout << s1 << endl;
	system("pause");
}

笔记扩充

  1. private(私有成员)的变量命名:采用 首字母大写 然后 加下划线
    例子:
    private:
    char S_sex[20];//私有成员
  2. 类 的调用方法:采用 类名 + 点 + 变量名(函数名) 进行调用
    例子:
    1.调用变量:yh.age = 19;
    2.调用函数:yh.get_sex();
  3. 结构体 本质没有区别,但是:
    1.类(class)默认访问控制属性为 private(私有的)
    2.结构体(struct)默认访问控制属性为 public(公共的)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值