当前位置: 首页 > news >正文

【C++课程学习】:类和对象(上)(类的基础详细讲解)

🎁个人主页:我们的五年

🔍系列专栏:C++课程学习

🎉欢迎大家点赞👍评论📝收藏⭐文章

 

 

目录

🍟1.1类的引出:

🍟1.2类的结构:

🍟1.3类的两种定义方法:

🍟1.4成员变量命名的建议:


 前言:

C语言是一门面向过程的语言,而C++是一门面向对象的语言。

1.C语言:

关注的是过程,解决提出的问题要逐步调用函数来解决。

2.C++:

C++是面向对象,关注的是对象,其他的有相应的方法

🍟1.1类的引出:

类是在结构体上引出来的,在C语言中,结果体只可以里面只能有数据。而在C++中,结构体中可

以定义函数。而C++中就这把这变成的类(class),但是与结构体还是有区别的,比如:

1.结构体里面的数据全部是公开(public)的,因为C++要兼容C语言。定义了一个结构体,我们可以直接在main函数访问结构体里面的数据。

2.类如果什么都不写的情况下,数据都是私有的(private)。

3.C++中的结构体也不需要加struct。

#include<iostream>
using namespace std;
//结构体
struct Data1{int _year;int _month;int _day;
};
//类
class Data2{
public:int _year;int _month;int _day;
};int main()
{Data2 a;a._year = a._month = a._day = 1;//Data1 a;//a._year = a._month = a._day = 1;cout << a._year<<endl;
}


🍟1.2类的结构:

class classname{

        //类体:

        //1.成员函数

        //2.成员变量

};        //和结构体一样,后面有;

class classname{//类体://1.成员函数//2.成员变量};        //和结构体一样,后面有;

这些东西大家看看就行:class类的关键字,classname类的名称,{}类的主体,还有后面的封号;;

大家需要看的就是:

类里面的内容分为两种:

1.类里面的数据叫成员变量,或者类的属性,但是我觉得,把它看成类的属性更能突出面向对象,

关注的对象。

2.类里面的函数叫成员函数,或者类的方法。还是一样的,我觉得,类的方法更能突出其面向对象的特点。

🍟1.3类的两种定义方法:

两种方法的主要区别也就是,是否类的方法都在类里面进行声明和定义。

1.类的方法都在类里面声明和定义:

这种情况下,编译器会把函数当成内联函数进行处理。

#include<iostream>
using namespace std;class Data {
public://声明和定义都在类里面void print() {cout << "print()" << endl;}
private:int _data;
};int main()
{Data a;a.print();
}

2.类的方法的声明和定义分开,声明在类里面,定义不在类里面:
声明放在.h文件种,定义在.cpp文件中。

#include<iostream>
using namespace std;class Data {
public://声明void print();
private:int _data;
};//定义:
void Data::print() {cout << "声明和定义分离" << endl;
}int main()
{Data a;a.print();
}

🍟1.4成员变量命名的建议:

一般我们介意在类的变量名称中加入一些符号以区分。

一般的就是在名字前面加_,或者在名字后面加_。不同的公司有不同的命名方式。

比如:

#include<iostream>
using namespace std;class Data {
public://声明void print();
private://在data前面加上_int _data;
};//定义:
void Data::print() {cout << "声明和定义分离" << endl;
}int main()
{Data a;a.print();
}

http://www.lryc.cn/news/364222.html

相关文章:

  • HTML 转义字符(escape characters)及其对应的符号(symbols)
  • CPASSOC代码详解
  • dirfuzz-web敏感目录文件扫描工具
  • 计算机发展史 | 从起源到现代技术的演进
  • 45-3 护网溯源 - 为什么要做溯源工作
  • 【JavaEE 进阶(二)】Spring MVC(下)
  • 光波长 深入程度
  • MySQL数据库常见工具的基础使用_1
  • C语言中指针的说明
  • webrtc vp8/9视频编解码介绍
  • 【机器学习300问】107、自然语言处理(NLP)领域有哪些子任务?
  • 面试被问准备多久要孩子?这样回答
  • HCIP-Datacom-ARST自选题库__多种协议简答【11道题】
  • C# 泛型函数
  • C# Onnx E2Pose人体关键点检测
  • YOLO10:手把手安装教程与使用说明
  • EasyRecovery2024永久免费crack激活码注册码
  • Linux Centos内网环境中安装mysql5.7详细安装过程
  • 新字符设备驱动实验学习
  • 篇1:Mapbox Style Specification
  • 实时监控与报警:人员跌倒检测算法的实践
  • LeetCode25_K个一组翻转链表
  • 电脑突然提示:“failed to load steamui.dll”是什么情况?分享几种解决steamui.dll丢失的方法
  • 【vue实战项目】通用管理系统:作业列表
  • Scikit-Learn随机森林回归
  • Vue Router 教程
  • 【数据库】SQL--DQL(初阶)
  • 【docker】docker的安装
  • OC IOS 文件解压缩预览
  • python-web应用程序-Django-From组件