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

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.

主站蜘蛛池模板: 桓仁| 本溪| 南涧| 永济市| 大同市| 车致| 洞口县| 通州市| 马关县| 景德镇市| 固镇县| 绩溪县| 神木县| 津市市| 绍兴市| 澄城县| 安远县| 固原市| 依兰县| 开原市| 仁怀市| 临城县| 正阳县| 定襄县| 南平市| 深圳市| 高台县| 孝义市| 乌海市| 清河县| 乌鲁木齐县| 龙山县| 平乐县| 长宁县| 宁晋县| 石景山区| 崇明县| 寿阳县| 石林| 西和县| 竹山县|