C++类和对象1

本文探讨了C语言与C++中struct与class的主要区别,C++中引入类扩展了面向对象编程能力,允许结构体包含函数和访问权限控制。通过实例展示了如何在C++中使用struct和class实现功能,并强调了它们在权限设置上的不同。
摘要由CSDN通过智能技术生成

目录

C语言和C++的一大区别

struct和class的区别


c++类的由来(或者说为什么要增加类):我们知道c语言是面向过程的语言,c++是即面向过程又是面向过程的语言。那么这两个有着什么样的区别和联系呢?

C语言和C++的一大区别

接下来我们利用c语言的struct来说明:

C 语言中,结构体中只能定义变量。
C++ 中,结构体内不仅可以定义变量,也可以定义函数。
例如:如果我们用C语言实现一下的功能,那么我们会发现,在struct内我们只能去定义一些变量 的类型,而我们需要的函数反而要去单独去实现
typedef struct Student 
{
	char _name[20];
	int _age;
	char _sex[10];
}student;


void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }


void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);

}

在c++内实现的话是:

// 这里是为了和c语言做出区别所以将函数的定义也直接放到结构体内作为内联函数,
如果函数的定义代码很多或者需要调用的次数多建议此处就只进行声明,之后在单独进行定义
struct Student 
{

void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }

void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);//此处为了区别和c语言struct的不同点利用了c语言的输出方法

}

	char _name[20];
	int _age;
	char _sex[10];
};





从上述例子我们可以看出在c++中struct可以包含函数的定义和变量,反观在c语言内struct就只能包含变量。

struct和class的区别

在c++中我们引入一个关键词class来指定指定这种既可以包含变量又可以包含函数声明的类型即为c++的类。struct在c++中也是类但是和class修饰还是有一些区别。我们用上述代码来说明这个区别:

这是struct修饰的类

struct Student 
{

void SetStudentInfo(const char* name, const char* sex, int age);

void print(student *s) 

	char _name[20];
	int _age;
	char _sex[10];
}

这是class修饰的类

struct Student 
{
public:
void SetStudentInfo(const char* name, const char* sex, int age);

void print(student *s) 
private:

	char _name[20];
	int _age;
	char _sex[10];
}

在类中我们保护我们我们的数据,我们引入三种修饰:public、private、protected,这三个关键词代表着不同的权限。

而struct默认的是成员函数和成员变量都是public,而class修饰的话成员函数和成员变量都是必须给予修饰的,一般我们是将成员函数用public修饰而成员变量我们用private修饰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值