C++类与对象-3.23笔记

发布于:2025-03-25 ⋅ 阅读:(36) ⋅ 点赞:(0)

今天学习了类的概述和写类的基本框架
在哔哩哔哩学习的这个老师的C++面向对象高级语言程序设计教程(118集全)讲的很不错(真的!!!),C语言也是在这个老师的带领下学习的

#include<iostream>
using namespace std;


//类的概述(了解)
//1.类的封装将数据和方法封装在一起,加以权限区分,用户只能通过公共方法访问私有数据
//2.定义一个结构体用来表示一个对象所包含的属性,函数用来表示一个对象所具有的行为,这样我们就可以表示出来一个十五,在C++语言中,行为和属性是封装的
//3.封装与结构体的区别:一个是将属性和变量和成一个整体,一个是给属性和函数增加访问权限
/*4.权限(权限只是针对类的外部,类的内部没有区分):
*private私有:类外部不可以直接访问私有数据,类内部可以访问
* protected保护:类外部不可以直接访问私有数据,类内部可以访问
* public公有:类外部可以访问,类内部可以访问
*/
//5.class关键字(类的定义,此时同结构体一样系统还没有为它分配空间)有分号!!!!
class Data1 {
private:
	int a;
protected:
	int b;
public:
	int c;
	void data_show(void) {
		//类的内部可以直接访问,没有权限区分
		cout << a << ", " << b << ", " << c << endl;
	}
};//同结构体一样有分号!!!!!
void test01() {
	//类是不占空间的,只有用类实例化对象(用类定义变量)的时候,系统为对象(变量)开辟空间
	//定义类的时候尽量不要给成员赋值
	//类中的数据成员拥有独立的空间
	Data1 ob;//使用Data实例化一个对象名为ob的对象
	//成员数据依赖于对象
	//cout << "ob.a = " << ob.a << endl;//类的外部不可以访问私有和保护的对象
	//ob1.data_show;//对象通过公共方法间接调用私有数据
}



//类的成员函数类中申明,类外定义
class Data2 {
	//不加属性,默认为私有
	int a;
public:
	void setA(int v);
	int getA(void);
};
void Data2::setA(int v) {
	a = v;
}
int Data2::getA(void) {
	return a;
}
void test02() {
	Data2 ob;
	ob.setA(100);
	cout << "a = " << ob.getA() << endl;
}
int main(int argc,char *argv[]){
	test02();
	return 0;
}