ROS学习笔记5:C++基础知识

前言:

        作为一名机械专业学生,在没有C++基础的情况下,直接网上的代码资源学习ROS收获不大。虽然老师们并不要求我们会写相关代码,但能看懂代码段的含义是非常必要的,因此在正式开始ROS学习应用前需要对C++有基本概念。

一、C++介绍:

1.面向过程程序设计的缺点:

(1)可读性不佳:在面向过程的程序设计中,函数及其所操作的数据结构没有直观的联系,导致随着程序规模的增加可读性下降。

(2)扩展性差:面向过程程序设计没有“封装”和“隐藏”的概念,要访问某个数据结构中的某个变量可以直接访问,但要修改该变量时需要将所有访问该变量的语句都找出来修改,且难以差错和重用代码。

2.C++的特点:

        C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

二、类和对象:

1.介绍类和对象:

(1)面向对象编程:

        面向对象是相对于面向过程来讲的,面向对象思想是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模。

        面向对象有三大特性:封装、继承和多态。

        C++中的类是实现面向对象编程的核心要素。

(2)类的介绍:

        类是根据客观事物抽象而成,形成一类事物;然后用类去定义对象,形成这类事物的具体个体;类把属性和方法进行封装,同时对类的属性和方法进行访问控制。

        下面举例圆类说明:

1)代码段:

//要使用C++输入输出工具,要提供这两行代码 
#include<iostream>      //包含输入输出函数的头文件 
using namespace std;    //释放std命名空间中的变量名,函数名以及类型名

//声明常量PI=3.14 
const double PI=3.14;

class Circle
{
public: //访问权限:公共的权限

    //属性
	double R;//半径
	
	//方法
	
	//获取圆的周长
	double cal_zc()
	{
		return 2*PI*R;
	}
	
	//获取圆的面积
	double cal_mj()
	{
		return PI*R*R;
	}
};

int main()
{
	//创建对象
	Circle c;                               //声明类的对象
	c.R=10;                                 //创建对象
	cout<<"半径为:"<<c.R<<endl;             //访问公共成员属性半径并显示
	cout<<"周长为:"<<c.cal_zc()<<endl;      //计算周长和面积并显示
	cout<<"面积为:"<<c.cal_mj()<<endl;
	
	return 0; 
}

2)结果:

3)解释代码: 

        ①Circle是一个类,其中封装了一些方法:

一个属性:R

两个方法:cal_zc()和cal_mj(),分别计算圆的周长和面积

        ②public规定了类中的内容的访问权限。(访问权限有public,private和protected)

public:公有成员,可以

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值