roslib是所有ROS客户机库和工具的基本依赖项
#pragma once//由编译器提供保证:同一个文件不会被包含多次,保证头文件只被编译一次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。
#include "hardwareserial.h"
HardwareSerial Serial(SERIAL1);
#define SERIAL_CLASS HardwareSerial
class STM32Hardware {
public:
STM32Hardware(SERIAL_CLASS* io , long baud= 57600){
iostream = io;//输入输出流
baud_ = baud;
}
STM32Hardware()
{
iostream = &Serial;
baud_ = 57600;
}
STM32Hardware(STM32Hardware& h){
this->iostream = iostream;
this->baud_ = h.baud_;
}
void setBaud(long baud){
this->baud_= baud;
}
int getBaud(){return baud_;}
void init(){
iostream->begin(baud_);
}
int read(){
if(iostream->available()){
return iostream->read();
}else{
return -1;
}
};
void write(uint8_t* data, int length){
for(int i=0; i<length; i++){
iostream->write(data[i]);
}
}
unsigned long time(){return millis();}
protected:
SERIAL_CLASS* iostream;
long baud_;
};
struct与class:
struct中的默认访问控制权限是public,而class的默认访问控制权限是private
为了隐藏结构体内的成员,添加访问控制标识:
struct RecTangle{
private:
int width; int height;
int pos_x; int pos_y;
public:
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
};
如果用class来代替struct,则需要添加访问控制标识.
比如用class来定义类C结构体
class RecTangle{
public:
int width; int height;
int pos_x; int pos_y;
};
iostream.h与iostream
iostream.h是包含输入/输出流处理的头文件,iostream就什么都不是了
但用iostream要加名词空间namespace
#include<iostream.h>
或者是
#include<iostream>
using namespace std;
二者都行。
C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。当代码中用时,输出可直接引用cout继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。
当代码中引入时,输出需要引用std::cout<时,引入std::有以下方法:
1.
using namespace std;
cout<
2.
using std::cout;
cout<
3.最基本的
std::cout<
通常用#include 时,要用using namespace std;。
如果不用这个,就要在使用cout时,用后两种方法了。其他头文件也是同样的道理。
java中public、private、protected区别
类中的数据成员和成员函数据具有的访问权限包括:public、private、protect、friendly(包访问权限)
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
priavte 本类可见
public 所有类可见
protected 本包和所有子类都可见(本包中的子类非子类均可访问,不同包中的子类可以访问,不是子类不能访问)
friendly 本包可见(即默认的形式)(本包中的子类非子类均可访问,不同包中的类及子类均不能访问)