void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别?
 void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别?
  const void fun(){};和void const fun(){};两个相同。
  如果采用"按址传递方式"的函数返回值加const 修饰,那么函数返回值(即地址)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。
  如果采用"按值传递方式"的函数返回值加const 修饰,由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。
  所以不要尽量不要把int fun2();写成const int fun2(); 因为没意义。
  例:
[csharp] view plaincopy
#include<iostream>
using namespace std;
; //全局变量
const int *fun1(){ //按址传递
return # //返回地址
}
const int fun2(){ //按值传递 //最好直接写int fun2()
return num;
}
int main()
{
const int *fun1();  
// int *t1=fun1(); //错误,必须是const型
const int *t1=fun1();
// *t1=20; //按址传递,不能修改其指向变量或常量的值
cout<<"const int *fun1() :\t"<<*t1<<endl;
const int fun2(); //最好直接声明成int fun2()
int t2=fun2(); //非const变量可以更改函数返回值
const int t3=fun2();
t2 += ; //按值传递,可以修改返回值
cout<<"const int fun2() :\t"<<t2<<endl;
;
}
  void fun() const{};
  类的成员函数后面加 const,表明这个函数不可以对这个类对象的数据成员(准确地说是非static数据成员)作任何改变例:
[csharp] view plaincopy
#include<iostream>
using namespace std;
class R
{
public:
R():num1(){}
int sum1(int a)const
{
// num1=10; //错误,不可以修改非static数据成员
return a+num1;
}
int sum2(int a)const
{
num2=; //正确,修改static数据成员
return a+num2;  
}
int sum3(int a) //没有const
{
num1=; //正确,修改非static数据成员
num2=; //正确,修改static数据成员
return a+num1+num2;
}
private:
int num1;
static int num2;
};
;
int main()
{
cout<<)<<endl;
cout<<)<<endl;
cout<<)<<endl;
;
}  
http://bbs.csdn.net/topics/350148926
http://bbs.csdn.net/topics/340217434
void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别?的更多相关文章
- (转)Const,Const函数,Const变量,函数后面的Const
		本文转自http://www.cnblogs.com/Fancyboy2004/archive/2008/12/23/1360810.html 看到const 关键字,C++程序员首先想到的可能是co ... 
- const char*、char*、char* const、char[]、string的区别
		1.const char* p: p is a pointer to const char(char const* p 一样) 意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2. ... 
- [EffectiveC++]item03:尽可能使用const 并且转载一篇关于const函数的博客
		速度 #include <iostream> using namespace std; class TextBlock { private: string text; public: Te ... 
- C#中的静态常量(const)和动态常量(static和readonly)用法和区别
		C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景.工作原理 readonly为运行时常量,程序运行时进行赋 ... 
- iOS—— static和const联合使用;使用static const 与 #define
		static和const联合使用: static将一个全局变量变成局部变量 const将一个局部变量变成局部常量 // 定义了一个局部常量 static const CGFloat ... 
- iOS-static和const联合使用;使用static const 与 #define
		static和const联合使用: static将一个全局变量变成局部变量 const将一个局部变量变成局部常量 // 定义了一个局部常量 static const CGFloat ... 
- a href="javascript:void(0)" 是什么意思?加不加上有什么区别?
		<A href="javascript:void(0)">点击</a>点击链接后不会回到网页顶部<A href="#">点击 ... 
- void f(int(&p)[3]){} 和void f(int(*p)[3]){}的差别
		#include<iostream> using namespace std; void f(int(&p)[3]){ cout<<p[0]<& ... 
- void(*p)()和void*p()区别
		void (*p)()是一个指向函数的指针,表示是一个指向函数入口的指地变量,该函数的返回类型是void类型.它的用法可参看下例: 例如:有一返加void值的函数swap,(swap用来交换两个数) ... 
- C++中的 CONST 含义(从#define 到 CONST 的转变)
		const 与define 两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些.#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似 ... 
随机推荐
- nginx+php7+mysql  在centos7.3下安装
			1.Nginx1.8.1 安装 1)安装 nginx 需要的扩展gcc,pcre-devel,zlib-devel, openssl openssl-devel yum -y install gc ... 
- scrapy-redis组件的使用
			scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调度器 dupefilter - URL去重 ... 
- hdu 3371(kruskal)
			Connect the Cities Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ... 
- 【转载】PDB命令行调试Python代码
			转载自这里. (博主按:PDB调试python代码和用GDB调试c++代码很类似) 你有多少次陷入不得不更改别人代码的境地?如果你是一个开发团队的一员,那么你遇到上述境地的次数比你想要的还要多.然而, ... 
- 利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发
			准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncurs ... 
- 确实,k8s的时代,ingress负载用traefik比nginx方便啊
			参考文档: https://mritd.me/2016/12/06/try-traefik-on-kubernetes/#13ingress 由于微服务架构以及 Docker 技术和 kubernet ... 
- datetimepicker时间控件
			喜欢上datetimepicker源自于对bootstrap的喜欢. 一款简单到爆的时间空间 引入jq 引入bootstrap 引入datetimepicker和bootstrap-datetimep ... 
- schtasks命令
			1.创建任务 在每天的22.44定时执行一次. schtasks /create /tn : 在特定时间运行一次. schtasks /create /tn : /sd // 2.运行一次任务 创建任 ... 
- hdu 4135 Co-prime (素数打表+容斥原理)
			题目链接 题意:问从A到B中与N互素的个数. 题解: 利用容斥原理:先求出与n互为素数的个数. 可以先将 n 进行素因子分解,然后用区间 x 除以 素因子,就得到了与 n 的 约数是那个素因子的个数, ... 
- C/C++宏的用法
			今天看caffe源码的时候看到了很多宏定义的内容,苦于代码基础薄弱,无法全部理解,故在网上搜得此篇好文,转载一发附原文地址:http://blog.csdn.net/hanchaoman/articl ... 
