cmake_minimum_required(VERSION 3.0) # 指定 CMake 的最低版本要求 project(MyProject) # 设置项目名称 # 添加可执行文件,并指定源文件 add_executable(my_executable main.cpp)
CMakeLists.txt

#include <iostream>
// 定义一个简单的类 MyClass
class MyClass {
public:
int value;
MyClass(int v) : value(v) {}
};
// 修改传入对象的状态,传入的是对象的副本
void modifyObjectCopy(MyClass obj) {
obj.value = 100; // 修改传入对象的副本
}
// 修改会影响原始对象的状态,传入对象的引用
void modifyObjectReference(MyClass &ref) {
ref.value = 100; // 修改传入对象的值
}
// 使用指针修改传入对象的状态,需检查空指针
void modifyObjectPointer(MyClass *ptr) {
if (ptr != nullptr) {
ptr->value = 100; // 修改传入对象的值
}
}
int main() {
// 创建 MyClass 对象
MyClass obj(10);
// 演示修改传入对象的状态,传入对象的副本
modifyObjectCopy(obj); // 传递对象的副本
std::cout << "After modifyObjectCopy, Original value: " << obj.value << std::endl; // 输出原始对象的值,未被修改
// 演示修改会影响原始对象的状态,传入对象的引用
modifyObjectReference(obj); // 直接传递对象引用
std::cout << "After modifyObjectReference, Modified value: " << obj.value << std::endl; // 输出修改后的值
// 演示使用指针修改传入对象的状态,传入对象的地址
modifyObjectPointer(&obj); // 传递对象的地址
std::cout << "After modifyObjectPointer, Modified value: " << obj.value << std::endl; // 输出修改后的值
return 0;
}


内部需要共享的变量
Eigen::Matrix4d T_VO_to_GNSS_ENU_;
初始化赋值
SLAM.T_VO_to_GNSS_ENU_= Eigen::Matrix4d::Identity();
主线程中使用数据
SLAM.T_VO_to_GNSS_ENU_
内部引用指针
Eigen::Matrix4d *T_VO_to_GNSS_ENU_;
初始化赋值绑定
// 设置VO-GNSS变换关系
void tracking_module::set_T_VO_to_GNSS_ENU(Eigen::Matrix4d *T_VO_to_GNSS_ENU)
{
T_VO_to_GNSS_ENU_=T_VO_to_GNSS_ENU;
}
分线程中使用数据
*T_VO_to_GNSS_ENU_
OPENVSLAM数据

浙公网安备 33010602011771号