Building太有学问了

博主上周的任务是将项目移植到新的核心库,在过程中遇到了link失败的问题。经过询问资深同事得知,Building涉及编码、格式、宏处理等多个方面,需要丰富的知识和经验。

上周剩下的一个任务是移植当前项目到一个新的核心库,大多数代码除了名字不一样其他都是一致的,本以为很快就会做完,结果link总是不成功。后来问了10年陈酿的牛人Jackson,才知道这个Building学问太大了,涉及编码、格式、宏处理(可以改变代码行为)、动态链接机制、编译器处理等多方面的知识和经验,所以怪不得公司前一段还招Build-Engineer 

`Building* building;` 这是一条 C++ 中的指针声明语句。它的含义是: 声明一个名为 `building` 的指针变量,该指针指向一个类型为 `Building` 的对象。 详细解释如下: - `Building`:这是一个类(class)类型,通常在程序中定义了建筑物相关的属性和方法,例如楼层数、面积、名称等。 - `*`:这是指针符号,表示后面的变量是一个指针。 - `building`:这是指针变量的名称。 - 分号 `;`:表示语句结束。 此时,`building` 被声明为一个指向 `Building` 类型对象的指针,但它目前**并未指向任何实际的对象**,即它是一个**悬空指针(dangling pointer)**,其值为未定义(除非初始化)。为了安全使用,应该在使用前进行初始化,例如动态分配内存或指向一个已存在的对象。 示例用法: ```cpp #include <iostream> using namespace std; class Building { public: int floors; Building(int f) : floors(f) {} void print() { cout << "This building has " << floors << " floors." << endl; } }; int main() { Building* building; // 声明指针 // 初始化指针:动态创建一个 Building 对象 building = new Building(10); // 使用指针调用成员函数 building->print(); // 释放内存,避免内存泄漏 delete building; building = nullptr; // 避免悬空指针 return 0; } ``` 上述代码中: - `Building* building;` 声明了一个指针。 - `new Building(10)` 在堆上创建了一个 `Building` 实例,并返回其地址。 - `building->print()` 使用箭头操作符访问对象的成员函数。 - `delete building` 释放内存,`nullptr` 赋值确保指针不再指向无效地址。 注意事项: - 如果不使用 `new` 或未指向有效对象就解引用该指针(如 `building->print()`),会导致未定义行为(通常是程序崩溃)。 - 推荐使用智能指针(如 `std::unique_ptr<Building>`)来自动管理内存,防止内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值