类与对象(一)

类与对象简介

在C++中,类和对象是面向对象编程(Object-Oriented Programming 简称 OOP)的核心概念,其重要性体现在多个方面,包括代码的重用性、可维护性、可扩展性和清晰性等方面。下面详细解释这些概念及其在C++中的重要性:

1. 代码的重用性

类是创建对象的模板或蓝图,它定义了对象的数据(属性)和行为(方法)。通过使用类,可以创建多个具有相同数据结构和方法的对象,从而避免了重复编写相同的代码。这种机制大大提高了代码的重用性,减少了开发时间和潜在的错误。

2. 可维护性

面向对象编程通过将数据和操作数据的方法封装在类中,提高了代码的可维护性。封装隐藏了类的内部实现细节,只允许通过公共接口(即类的成员函数)与外部世界交互。这意味着,如果需要修改类的内部实现,只要公共接口保持不变,就不会影响到使用该类的其他部分,从而降低了维护成本。

3. 可扩展性

类和对象支持继承多态等特性,这些特性使得C++程序具有良好的可扩展性。继承允许创建基于现有类的派生类,这些派生类可以继承基类的属性和方法,并可以添加新的属性或覆盖(重写)基类的方法。多态则允许通过基类指针或引用来调用派生类的成员函数,这使得程序能够在运行时决定调用哪个函数,从而提高了程序的灵活性和可扩展性。

4. 清晰性

面向对象编程将现实世界中的实体抽象为类和对象,使得代码更加贴近人类思维方式,提高了代码的可读性和清晰度。通过将相关的数据和方法组织在同一个类中,可以很容易地理解类的职责和与其他类的关系,这对于大型项目的开发和维护尤为重要。

5. 模块化

类和对象的使用促进了代码的模块化。每个类都封装了特定的功能和数据,这使得程序可以被分解为更小的、更易于管理的部分。模块化不仅有助于减少代码之间的耦合度,还有助于实现代码的并行开发和测试。

6.结论

综上所述,类和对象在C++中的重要性不言而喻。它们是实现面向对象编程的基石,通过提高代码的重用性、可维护性、可扩展性和清晰性,使得C++成为开发大型、复杂应用程序的理想选择。

类与结构体的差异 

 C语言中我们已经学习过结构体这一自定义类型,C语言结构体内不允许定义函数且内部数据是可以在外部直接修改的,从程序的安全性考虑,在C++中对其进行了修改,引入这一新的自定义类型(C++中的结构体是可以定义函数的,但考虑到数据的保护,我们常常采用

类:类名+属性(包含的数据)+行为(与外界交换数据的函数,保护了类内数值)

此外还有三种权限public protected private对应封装属性,只对类外有效,类内直接访问。

  1. public(公开的)
    • public 修饰符表示该成员可以被任何其他类访问。也就是说,如果一个类的成员被声明为 public,那么无论是该类内部的代码、同一包内的其他类,还是不同包中的类,都可以访问这个成员。
    • 使用场景:当你希望类的某些成员能够被其他任何类使用时,应将这些成员声明为 public
  2. private(私有的)
    • private 修饰符表示该成员只能被其所在的类内部访问。即使是同一个包内的其他类也无法访问被声明为 private 的成员。
    • 使用场景:当你希望某个成员仅在其所属的类内部被使用时,应将其声明为 private。这是封装性的一个重要体现,有助于隐藏类的内部实现细节。
  3. protected(受保护的)
    • protected 修饰符表示该成员可以被其所在的类内部访问,也可以被同一包内的其他类访问,还可以被不同包中的子类访问。但是,它不能被不同包中的非子类访问。
    • 使用场景:当你希望某个成员在其所属的类内部、同一包内的其他类以及任何子类中被访问时,应将其声明为 protected。这是实现继承时控制访问权限的一种方式。

一个简单的类 

class ming
{
public:
	void get_a(int a)  //从类外获取类内值,避免直接访问类内值
	{
		_a = a;  
	}
	int put_a()     //传出值_a
	{
		return _a;
	}
protected:
private:
	int _a=10 ;  //类中可以设默认值
};
int main()
{
	ming x;
	x.get_a(79);
	cout << x.put_a() << endl;
	return 0;
}

类中函数不仅可以定义在类中,还可以类内声明,类外实现。但要在函数前标明类域。

class ming
{
public:
	void get_a(int a); //类内声明
protected:
private:
	int _a=10 ;
};
void ming::get_a(int a)  //类外实现
{
	_a = a;
}

                                                                                                                                   

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值