类和对象初识

举报
芒果_Mango 发表于 2022/07/31 23:16:34 2022/07/31
【摘要】 大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN C/C++领域新星创作者https://blog.csdn.net/chuxinchangcun?type=blog掘金LV3用户 https://juejin.cn/us...

大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:


类和对象[上]

1.面向过程和面向对象初步认识

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。

C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。

如:

设计一个简单外卖系统

面向过程:关注实现下单,接单,送餐这些过程,体现到代码层面 ->方法/函数

面向对象:关注实现类对象及类对象间的关系,用户,商家,骑手以及他们之间的关系,体现到代码层面 ->类的设计及类之间的关系


C++基于面向对象:面向过程和面向对象混编,原因:C++兼容C

Java纯面向对象:只有面向对象


2.类的引入

C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。

//struct / class
//C++兼容c里面结构体的写法
//同时struct在c++中也升级成了类
struct Student
{
    char name[10];
    int age;
    int id;
};
int main()
{
    //c语言中:struct Student 才是类型
    struct Student s1;//兼容c
    Student s2;//升级到类,Student是类名,也是类型
    return 0;
}

3.类的定义

class className
{
  //类体:由成员函数和成员变量组成  
};//一定要注意分号!

class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。

类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数

struct Student
{
    //成员变量
    char _name[10];
    int _age;
    int _id;
    //成员方法
    void Init(const char* name, int age, int id)
    {
        strcpy(_name, name);
        _age = age;
        _id = id;
    }
    void Print()
    {
        cout << _name << endl;
        cout << _age << endl;
        cout << _id << endl;
    }
};
int main()
{
    //c语言中:struct Student 才是类型
    struct Student s1;//兼容c
    Student s2;//升级到类,Student是类名,也是类型
    s1.Init("张三", 19, 1);
    s2.Init("李四", 20, 2);
    s1.Print();
    s2.Print();
    return 0;
}

image-20220116181631606


image-20220116182510867


类的两种定义方式

  1. 声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处 理。

注意:内联是一种建议!由编译器决定是否当成内联函数

image-20220116163317698


  1. 声明放在.h文件中,类的定义放在.cpp文件中

image-20220116163352568

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。