求助,关于C++指针的一些问题

以下面这个程序为例:#include<iostream>usingnamespacestd;classhuman{public:human(){cout<<"构造函数执行... 以下面这个程序为例:

#include <iostream>
using namespace std;
class human
{
public:
human(){cout<<"构造函数执行中...\n";i=999;}\
private:
int i;
}
int main()
{
human*p=new human;
return 0;
}

1、这个函数中private的作用是什么?
2、当我运行程序,并没有出现i,那么为什么要对i进行赋值?这样操作一般的目的是什么?
int main前面少了一个分号
展开
 我来答
香蕉1996
2013-02-05 · TA获得超过132个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:81.5万
展开全部
private作用是把一些在外部不需要直接用到的变量和函数封装起来(在该类的成员函数外面使用该类时是看不到的!),可以是没必要出现的类的部分屏蔽,提高编程效率。

至于给i赋值,是这样的,不同的编译器给i的初值可能是不一样的,为了使程序便于移植,i被确定为一个约定(大家商量好的)的值,还可以使程序便于理解和维护,避免出现没必要的警告信息
还有,你应该在return 0;前加一句delete p;这不是废话,p所指向的内存区的内容没有被删除(系统不会帮你删的!!)白白占用内存空间
来自:求助得到的回答
Bk0X
2013-02-05 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:653万
展开全部
private 只 '私有的', 即不允许外部访问的.

int main(){
human.i = 0; // 到这里会有一条编译错误: "i"不允许访问
}

如果 i定义在public"共有的" , 则不会出现这条错误.

你的程序, i 完全没有被用到, 所以其赋值是完全没有意义的, 就算整个删掉i的的定义也没问题, 只能说是随手写上去的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huanghongw
2013-02-05 · 超过75用户采纳过TA的回答
知道答主
回答量:238
采纳率:100%
帮助的人:159万
展开全部
private的意思是私有的 只有类的成员函数可以使用。i不允许外部以任何方式直接访问,要访问就需要提供public方法的方式访问。这是面向对象编程封装实现的基础。在自己类中i是作为一个类的全局变量来使用。它的作用域是在类中,对i赋值之后 其它地方使用i的时候i的值就已经存在了,同时其它地方改变i的值其影响范围是在整个类里面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-02-05 · TA获得超过219个赞
知道小有建树答主
回答量:499
采纳率:0%
帮助的人:196万
展开全部
private的作用将成员变量私有化,即只允许该类成员函数对齐访问,不能通过对象名直接访问。

i赋值是对其初始化,用不用无所谓
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青柠0214
2013-02-05
知道答主
回答量:43
采纳率:0%
帮助的人:17.7万
展开全部
private 是私有变量,访问受限。不允许其他类访问。
i 赋值类似于初始化,以后用到的时候不赋值也不会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dontbmh
2013-02-05 · TA获得超过100个赞
知道答主
回答量:318
采纳率:0%
帮助的人:144万
展开全部
c++ primer推荐你看一看 基础太差 这样的问题让人很难回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式