类与对像(1)

好几个月没有写了,差了好多,这些天补回来吧。

接下来,让我们正式步入C++与C语言开始不同的地方。

我对类的理解:类是对于具有相同或相似属性的数据集合。

类的关键词:class,public,protected,private;

类的创建:

class+类的名字+{.........数据}+" ; "'结尾。

代码演示:创建一个简单的类:

cpp 复制代码
class Date
{

};

注意:

类的结尾带有一个"分号"的结束标志。


类内数据

接下来让我们完善这个类,也就是与我们的关键词:public,private有关了。

注:这里我们先不讲protected,其主要用于后面的类的继承,现阶段不能有很好的体现。

cpp 复制代码
class Date
{
public:

private:
	int year, month, day;
};

声明在private的数据为类的私有数据,无法在外部引用,声明在public的数据为类的共有数据,可以在外类部引用。

这里体现出了类的封装特性,对类内的数据具有一定的保护作用。

同时这里也体现出了class(类)与struct(结构体)的不同:

类内的部分数据无法在类的外部使用,而结构体内的所有数据都可以在结构体外使用。


实例:

cpp 复制代码
class Date
{
	public:
		int setnumber(int year,int month,int day)
		{
			_year=year;
			_month=month;
			_day=day;
		}
	private:
	int _year,_month,_day;
		
};
int main(int argc, char** argv) {
	Date wang;
	wang.setnumber(2024,7,6);
	cout<<wang._year<<endl;
	return 0;
}

运行这段代码,我们会发现编译器报错为:


类内数据的使用:

那要如何使用类内数据呢,我们可以在类内定义public类型的函数来对类内的数据进行使用,

就像是我们在前面代码里面定义的setnumber函数一样。将公有函数作为类的接口来对类内数据进行赋值、修改、导出等操作。

这样的好处:可以不破坏类的封装性。

cpp 复制代码
class Date
{
	public:
		int setnumber(int year,int month,int day)//对数据进行赋值操作 
		{
			_year=year;
			_month=month;
			_day=day;
		}
		void Print()//对数据进行打印操作 
		{
			cout<<_year<<' '<<_month<<' '<<_day<<endl;
		} 
	private:
	int _year,_month,_day;
		
};
int main(int argc, char** argv) {
	Date wang;
	wang.setnumber(2024,7,6);
	wang.Print();
	
	return 0;
}
相关推荐
王老师青少年编程18 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮1 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
样例过了就是过了2 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
谭欣辰3 小时前
C++ 排列组合完整指南
开发语言·c++·算法
橙子也要努力变强3 小时前
信号捕捉底层机制-机理篇2
linux·服务器·c++
盐焗鹌鹑蛋4 小时前
【C++】stack和queue类
c++
郝学胜-神的一滴5 小时前
罗德里格斯旋转公式(Rodrigues‘ Rotation Formula)完整推导
c++·unity·godot·图形渲染·three.js·unreal
lzh200409195 小时前
深入理解进程:从PCB内核结构到写时拷贝的底层实战
linux·c++
aseity5 小时前
跨平台项目中QString 与 非Qt 跨平台动态库在字符集上的一个实用的互操作约定.
c++·经验分享
CN-Dust5 小时前
【C++】while语句例题专题
数据结构·c++·算法