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

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.

主站蜘蛛池模板: 萨嘎县| 宁德市| 兰溪市| 上栗县| 桐庐县| 罗山县| 施甸县| 长春市| 河源市| 阜城县| 两当县| 固阳县| 封开县| 弥渡县| 观塘区| 枣阳市| 海宁市| 海南省| 石景山区| 安顺市| 盈江县| 宁德市| 讷河市| 北宁市| 翁牛特旗| 宝山区| 讷河市| 三台县| 讷河市| 磐安县| 遵义县| 昌乐县| 临澧县| 临汾市| 沙雅县| 防城港市| 清水河县| 南溪县| 祁门县| 云南省| 台北县|