官术网_书友最值得收藏!

Pointing to a null pointer

Another new feature in modern C++ is a keyword named nullptr that replaces the NULL macro to represent a null pointer. Now, there's no ambiguity in the use of the NULL macro for zero numeric or a null pointer. Let's suppose we have the following two method's signature in our declaration:

    void funct(const char *);
void funct(int)

The former function will pass a pointer as the argument and the latter will pass the integer number as its argument. Then, we invoke the funct() method and pass the NULL macro as the parameter, as shown here:

    funct(NULL);

What we intend to call is the former function. However, since we pass the NULL parameters, which is basically defined as 0, the latter function will be invoked. In modern C++, we can use the nullptr keyword to ensure that we will pass a null pointer to the argument. The invocation of the funct() method should be as follows:

    funct(nullptr);

Now the compiler will invoke the former function since it passes a null pointer to the argument, and this is what we expect. There will be no ambiguity anymore, and it will avoid unnecessary future problems.

主站蜘蛛池模板: 尚义县| 涿州市| 平乐县| 招远市| 青河县| 广饶县| 论坛| 阳新县| 宜兰市| 辽阳市| 永新县| 毕节市| 东平县| 邵阳县| 陆川县| 谷城县| 东方市| 新余市| 通许县| 南召县| 鄄城县| 闽侯县| 安义县| 土默特右旗| 泾川县| 志丹县| 新化县| 佳木斯市| 枞阳县| 南和县| 罗江县| 虞城县| 左贡县| 惠安县| 白水县| 蚌埠市| 天柱县| 米泉市| 巴里| 建始县| 历史|