求助,关于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前面少了一个分号 展开
#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前面少了一个分号 展开
7个回答
展开全部
private作用是把一些在外部不需要直接用到的变量和函数封装起来(在该类的成员函数外面使用该类时是看不到的!),可以是没必要出现的类的部分屏蔽,提高编程效率。
至于给i赋值,是这样的,不同的编译器给i的初值可能是不一样的,为了使程序便于移植,i被确定为一个约定(大家商量好的)的值,还可以使程序便于理解和维护,避免出现没必要的警告信息
还有,你应该在return 0;前加一句delete p;这不是废话,p所指向的内存区的内容没有被删除(系统不会帮你删的!!)白白占用内存空间
至于给i赋值,是这样的,不同的编译器给i的初值可能是不一样的,为了使程序便于移植,i被确定为一个约定(大家商量好的)的值,还可以使程序便于理解和维护,避免出现没必要的警告信息
还有,你应该在return 0;前加一句delete p;这不是废话,p所指向的内存区的内容没有被删除(系统不会帮你删的!!)白白占用内存空间
来自:求助得到的回答
展开全部
private 只 '私有的', 即不允许外部访问的.
int main(){
human.i = 0; // 到这里会有一条编译错误: "i"不允许访问
}
如果 i定义在public"共有的" , 则不会出现这条错误.
你的程序, i 完全没有被用到, 所以其赋值是完全没有意义的, 就算整个删掉i的的定义也没问题, 只能说是随手写上去的吧
int main(){
human.i = 0; // 到这里会有一条编译错误: "i"不允许访问
}
如果 i定义在public"共有的" , 则不会出现这条错误.
你的程序, i 完全没有被用到, 所以其赋值是完全没有意义的, 就算整个删掉i的的定义也没问题, 只能说是随手写上去的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private的意思是私有的 只有类的成员函数可以使用。i不允许外部以任何方式直接访问,要访问就需要提供public方法的方式访问。这是面向对象编程封装实现的基础。在自己类中i是作为一个类的全局变量来使用。它的作用域是在类中,对i赋值之后 其它地方使用i的时候i的值就已经存在了,同时其它地方改变i的值其影响范围是在整个类里面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private的作用将成员变量私有化,即只允许该类成员函数对齐访问,不能通过对象名直接访问。
i赋值是对其初始化,用不用无所谓
i赋值是对其初始化,用不用无所谓
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private 是私有变量,访问受限。不允许其他类访问。
i 赋值类似于初始化,以后用到的时候不赋值也不会报错。
i 赋值类似于初始化,以后用到的时候不赋值也不会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++ primer推荐你看一看 基础太差 这样的问题让人很难回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询