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

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.

主站蜘蛛池模板: 淄博市| 屏山县| 昭觉县| 松江区| 仲巴县| 大同市| 嵊州市| 许昌县| 驻马店市| 沁阳市| 乌兰浩特市| 安溪县| 商河县| 昌平区| 马公市| 延津县| 和静县| 阳西县| 简阳市| 肥乡县| 谢通门县| 眉山市| 成武县| 阳原县| 洞口县| 内丘县| 讷河市| 吴川市| 磴口县| 汤阴县| 聂荣县| 常州市| 平乐县| 巨野县| 鹤峰县| 安多县| 甘孜| 樟树市| 阳西县| 长葛市| 登封市|