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数据