• 欢迎访问废江网站,承蒙遇见 QQ群
  • 本站将致力于推送优质的java知识以及算法,开源代码!

类和对象的提高

c++ 站点默认 4年前 (2020-01-03) 1194次浏览 已收录 0个评论 扫描二维码

#this指针
其作用就是指向成员函数所作用的对象
非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针
例如:想要将某对象的公有成员自增,写一个函数
complex addone(){
this->real++;// 等价于real++;
this->print();//等价于print
return *this;
}
在主函数中:
int main(){
complex c1(1,1),c2(0,0);
c2=c1.addone(); //这样不需要再传递参数了
return 0;
}
*静态成员函数不能使用this指针,因为静态成员函数并不具体作用某个对象
*因此,静态成员函数的真实的参数的个数,就是程序中写出的参数个数
#静态成员函数
静态成员,在声明前面加上static关键字
普通对象每个成员都有各自的一份,静态成员变量被所有对象所共享
普通成员函数必须具体作用于某个对象,静态成员函数并不具体作用于某个对象
**因此静态成员不需要通过对象就可以访问**
访问静态成员
1.类名::成员名
2.对象名.成员名
3.指针->成员名
4.引用.成员名
静态成员变量本质上全局变量,静态成员函数本质上是全局函数
例如,考虑一个随时知道矩形总数和总面积的图形处理程序
可以用全局变量或者静态成员变量来表示,但考虑不同
结构体中定义中,将w,h定义长宽,当出现一个对象时候(**在构造函数里完成**),总数变量加1,面积变量也是增加
同理在**析构函数**里面将其对应的减少,值得注意的是不能忘记了复制构造函数
*在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数
#成员对象和封闭类
有成员对象的类叫做封闭类(在一个类里面有其他类(被称为成员对象),这个类叫封闭类)
任何生成封闭类对象的语句,都要让编译器明白,对象中的成员对象是如何初始化的
具体做法是:*通过封闭类的构造函数的初始化列表
*封闭类构造函数和析构函数的执行顺序
1.先执行所有对象成员的构造函数,然后执行封闭类的构造函数
2.对象成员的构造函数调用次序和对象成员在类中的说明次序一次
3.当封闭类的对象消亡时,先执行封闭类的析构函数,再执行成员对象的析构函数
#常量对象 常引用
如果不希望某个对象的值被改变,则定义该对象前可以加上const
可以在类的成员函数后面加上const关键字,则为常量成员函数
*常量成员函数执行期间不应修改其所作用的对象(成员对象,成员函数)
例如:void getvalue() const; //声明
注意*常量对象不能执行非常量成员函数,可以执行常量成员函数
#友元
友元分为友元函数和友元类两种
友元函数:一个类的友元函数可以访问该类的私有成员
声明:在前面加上frind
目的:为了保证某个类的函数能够访问其他类的私有成员
友元类:如果a时b的友元类,那么a的成员函数可以访问b的私有成员
*友元类之间的关系不能传递,不能继承


废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:类和对象的提高
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址