9. 指向对象的指针

    下面程序的输出值是多少?并解释原因:

    #include "stdafx.h"

    #include <iostream.h>

    class C

    {

    public:

        int i;

    public:

        C(int j) {i = j;}

    };

 

    void f(C *the_pc)

    {

        the_pc = new C(6);

    }

 

    int main()

    {

        C *pc = new C(5);

        f(pc);

    

        cout << "The i is " << pc->i << endl;

    }

    程序的执行结果如下:

    原因如下:

    1. 在main()函数中,首先新建一个对象C(5),并且让C(5)初始化指针pc,然后调用f(C *the_pc),将pc作为参数传递到函数中,而函数f(pc)只改变了pc指针所指向的内容,而pc本身的值并未改变,因此,pc->i 的值为5.

    2. 一个语法问题:当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。因此头文件的使用还有第二种方式:

    #include <iostream>

    using namespace std;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值