c++初阶——类和对象(上)

本文介绍了C++中的类和对象概念,比较了C和C++在类定义上的差异,包括访问限定符、成员变量和函数的使用,以及this指针的作用。还通过实例探讨了类对象的存储方式和栈的C/C++实现对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好我是小锋今天我们来学习类和对象 

面向过程和面向对象初步认识

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。

C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完 成。

类的引入

C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。

struct add {
	//成员函数
	//初始化
	void init(int year=1, int month=1, int day=1) {
		_year = year;
		_month = month;
		_day = day;
	}

	void addprintf() {
		cout << "year=" << _year << endl;
		cout << "month=" << _month << endl;
		cout << "day=" << _day << endl;
	}
	//成员变量
	int _year;
	int _month;
	int _day;
};

int main() {
	add ps;
	ps.init();
	ps.addprintf();
	ps.init(1, 2, 3);
	ps.addprintf();


	return 0;
}

与上面的struct类似,c++更喜欢用class来代替。

那我们来看看class定义的类与stack的区别

类的访问限定符

C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选 择性的将其接口提供给外部的用户使用。

【访问限定符说明】

1. public修饰的成员在类外可以直接被访问

2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)

3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止

4. 如果后面没有访问限定符,作用域就到 } 即类结束。

5. class的默认访问权限为private,struct为public(因为struct要兼容C)

注意:访问限定符只在编译时有用,当数据映射到内存后,没有任何访问限定符上的区别

我们这里可以把保护和私有当作相同作用它们的区别我们以后会讲解

那让我们回到问题C++中struct和class的区别是什么?

C++需要兼容C语言,所以C++中struct可以当成结构体使用。另外C++中struct还可以用来 定义类。和class定义类是一样的,区别是struct定义的类默认访问权限是public,class定义的类默认访问权限是private。

类的作用域

类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值