C++新手问题 类
1,封装有什么用?在C里,定义一个函数比如说fun1,在里面定义一个inta,a就是在fun1里有用,不也不和外界交流么。。。干嘛要弄publicprivate.?2,“构造函数”,是构造一个函数啊,还是“构造函数”是一个名词3,public后一定要加“:”吗?我用VS2008.NET,别人给我的源码里直接public类名4,类里好多重复使用类名,比如:classpoint{ (intxx=0,intyy=0){x=xx;y=yy;}point(point&p);intgetx(){returnx;}intgety(){returny;} ,y;};//以下是成员函数实现,重点来了!!!!!!!!!!!!!!!!!!!!point::point(point&p)//连着三个point,再加个p,分别是什么意思啊????{x=p.x;y=p.y;……}…………
1,封装有什么用?在C里,定义一个函数比如说fun1,在里面定义一个inta,a就是在fun1里有用,不也不和外界交流么。。。干嘛要弄publicprivate。?通俗地说,封装是为了避免类成员(变量和函数)被类外部代码不受控制地引用,从而提高代码的可读性和可维护性。
例如:classfoo1{ (){intindex(0);++index;}voidShowIndex(){printf("%d",m_index);}。。。};classfoo2{intm_index; (){returnm_index;}voidIncIndex(){++m_index;}voidShowIndex(){printf("%d",GetIndex());}。
。。};其中的成员变量m_index被类外部代码引用了100次,但现在m_index需要从0基(从0数起)改为1基(从1数起),那么foo1需要改100次,并且要找到所有引用的地方;foo2可能只需改1次,并且无需寻找引用的地方。至于函数里面定义的变量,是没有办法被其它函数引用的。
如foo1::ShowIndex()无法显示foo1::IncIndex()中定义的index;而foo2可以。2,“构造函数”,是构造一个函数啊,还是“构造函数”是一个名词“构造函数”是一个名词,意思是用来构造该类的实例的函数。一个类可以有多个不同的构造函数,以构造初始状态不同的实例。
3,public后一定要加“:”吗?我用VS2008。NET,别人给我的源码里直接public类名这只是语法的格式问题4,类里好多重复使用类名,比如:classpoint{ (intxx=0,intyy=0){x=xx;y=yy;}point(point&p);intgetx(){returnx;}intgety(){returny;} ,y;};//以下是成员函数实现,重点来了!!!!!!!!!!!!!!!!!!!!point::point(point&p)//连着三个point,再加个p,分别是什么意思啊????{x=p。
x;y=p。y;……}…………类里面没有也不能重复使用类名:第一个point是类名;第二个point是函数名(构造函数必须与类名一致);第三个point是变量类型名,p是变量名,因为之前有一个&,表明p是该类的一个实例的一个引用。
必须要先定义一个公共类,在这个公共类下,才能添加各个语句的属性。当然是构造一个函数。不一定要加的,前两个是2个点坐标声明,第三个是定义横坐标为唯一p值
答:所谓的封装是针对面向对象编程而来的,就是把实现功能的代码接口化,只让使用的人知道怎么用而无须知道怎么实现。详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>