【浅谈C中的 struct 和C++的 class】

37 篇文章 1 订阅

C中的struct

C中的struct主要是用来描述不同数据类型而产生的自定义的数据类型,即定义数据的复合

struct Data{
	int a;
	float b;
	char c;
};

整个结构体中所包含的仅仅是数据,而没有函数(如要使结构体中包含对函数的操作,可以借助函数指针)

#include<stdio.h>

int Sum(int a,int b){
	return a+b;
}
struct Data{
	int a;
	float b;
	char c;
	int (*Fun)(int a,int b)=Sum;
};


int main(){
	
	Data data;
	int n = data.Fun(1,2);
	printf("%d\n",n);
	
	return 0;
}

C++中的class

C++与C中的struct类似,也可以定义数据的复合,但同时还可以定义函数的复合

class Data{
	private:
		int a;
		float b;
		char c;
	public:
		void Fun();      //函数声明
		int Sum(int a,int b);
};

void Data::Fun(){        //函数定义
	cout<<"Hello"<<endl;
}

int Data::Sum(int a,int b){
	return a+b;
}

class与struct

在C的环境下,是没有class的;

在C++的环境下class与struct的区别不大,即struct也可以包含函数成员,主要的区别是访问权限的问题,在class中的默认访问权限是private,而struct是public。

所以一般既支持C又支持C++的环境下,class与struct的用法没多大差别,除非是纯C的环境(而且是有一定年代的版本下)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值