详解C++之类和对象(1)

 更新时间:2021年11月10日 17:09:10   作者:LUYAO_LY  
类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数

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];
}

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

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

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 老生常谈C语言动态函数库的制作和使用(推荐)

    老生常谈C语言动态函数库的制作和使用(推荐)

    下面小编就为大家带来一篇老生常谈C语言动态函数库的制作和使用(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • C++通过类实现线性表

    C++通过类实现线性表

    这篇文章主要为大家详细介绍了C++通过类实现线性表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 简要对比C语言中的setgid()函数和setregid()函数

    简要对比C语言中的setgid()函数和setregid()函数

    这篇文章主要介绍了C语言中的setgid()函数和setregid()函数的简要对比,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • C语言实现弹跳小球

    C语言实现弹跳小球

    这篇文章主要为大家详细介绍了C语言实现弹跳小球,设置了小球分数及过关难度,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C++类的分离式写法介绍示例

    C++类的分离式写法介绍示例

    今天小编就为大家分享一篇关于C++类的分离式写法介绍示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++实现二分法求连续一元函数根

    C++实现二分法求连续一元函数根

    这篇文章主要为大家详细介绍了C++实现二分法求连续一元函数根,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • C++构造函数一些常见的坑

    C++构造函数一些常见的坑

    这篇文章主要给大家分享的是C++构造函数一些常见的坑,文章围绕C++构造函数的相关资料展开关于C++构造函数坑的内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-01-01
  • 详解C++如何实现在Word文档中创建列表

    详解C++如何实现在Word文档中创建列表

    这篇文章主要为大家详细介绍了介绍如何使用C++在Word文档中创建编号列表、项目符号列表和多级列表,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • C语言 位段的详细介绍

    C语言 位段的详细介绍

    这篇文章主要介绍了C语言 位段的详细介绍的相关资料,学习C语言基础的朋友,可以参考本文,需要的朋友可以参考下
    2016-11-11
  • C语言函数的参数使用指针

    C语言函数的参数使用指针

    这篇文章主要介绍了C语言函数的参数使用指针,本文讲述了指针在作为函数参数时候的使用方法,解析值传递和值引用的区别案例,希望对你有所帮助
    2021-06-06

最新评论