博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++特殊函数方法
阅读量:6420 次
发布时间:2019-06-23

本文共 1115 字,大约阅读时间需要 3 分钟。

hot3.png

特殊函数方法

  • 静态方法(static)
  • const方法

 静态方法:

  • 静态方法不属于特定对象,因此没有this指针。
  • 当用对象调用静态方法时,静态方法不会访问该对象的非静态数据成员。
  • 静态方法可以访问private和protected静态数据成员,而且一个对象可以通过调用静态方法访问另一个同类型对象的private和protected静态数据成员。

const方法:

  • 非const对象和const对象均可以调用const方法,但const对象仅能调用const方法。
  • 实际编码时,不修改对象的所有方法声明为const,以便在程序中引用const对象。

静态方法与const方法关系:

  • const和static不可能同时修饰同一个函数方法,因为静态方法没有类的实例,所以不可能改变内部的值,所以两者相结合实际是多余的。

当然,如果类的成员函数不会改变对象的状态,那么该成员函数会被声明为const,但有时候需要在const函数中修改一些与类的状态无关的数据成员,那么该数据成员就应该被mutable修饰,如计算运算次数,运行效率等等。

2.举例

class test{public:	static int getNumber();	string getString()const;	int setNumber(int x);	static int getAnotherNumber(test anothertest);private:	static int n;	string s;};int test::n = 0;int test::getNumber(){	//return this->n;//this只能用于非静态成员函数内部	//string s1 = s;//静态成员函数仅能访问静态数据成员	return n;//访问private成员变量}int test::setNumber(int x){	this->n = x;	return this->n;}string test::getString()const{	return s;}int test::getAnotherNumber(test anothertest){	return anothertest.n;}void main(){	test onetest, twotest;	onetest.setNumber(8);	twotest.setNumber(9);	cout << onetest.getAnotherNumber(twotest)<

 

转载于:https://my.oschina.net/u/2959583/blog/775581

你可能感兴趣的文章
处理器高端之路停滞,联发科欲进军诺基亚领地
查看>>
IBM存储部门换了新老板:还是6年前那个
查看>>
IBM公司公布三层单元PCM-MLC,向3DX堆栈方案发起挑战
查看>>
《2040大预言:高科技引擎与社会新秩序》—— 导读
查看>>
数据库操作:添加、插入、更新语句
查看>>
降低数据中心能源消耗
查看>>
《Python Cookbook(第3版)中文版》——1.8 与字典有关的计算问题
查看>>
《提高转化率!网页A/B测试与多变量测试实战指南》一2.5 勇气与责任心
查看>>
深入实践Spring Boot3.2 控制器设计
查看>>
《微信小程序:开发入门及案例详解》—— 导读
查看>>
降低JRuby的内存占用的可能方法
查看>>
如何创建和使用Python CGI脚本
查看>>
RHCSA 系列(九): 安装、配置及加固一个 Web 和 FTP 服务器
查看>>
《jQuery、jQuery UI及jQuery Mobile技巧与示例》——3.7 示例:添加函数的返回结果...
查看>>
并发集合(一)引言
查看>>
如何写gdb命令脚本
查看>>
Android ListView展示不同的布局
查看>>
oracle 表(下)
查看>>
iOS宏(自己使用,持续更新)
查看>>
手把手玩转win8开发系列课程(3)
查看>>