在Linux下C语言中, 我们可以用const来修饰函数吗(注:不是参数)?

TymonHuang 发布于 2015/01/27 16:48
阅读 388
收藏 0

在C语言中, 我们知道, 可以用const来修饰函数的形参,  例如: void change (const c, const *p);

最近在C++语言中看到一些代码, 它们将const关键字放在函数末尾, void change(int c, char b)const;

于是就在C语言中试了试, 结果不行, 请问可以的吗, 如果可以, 请给出例子?

加载中
0
quanwei9958
quanwei9958

在类中使用const

class A
{
   public:
   void func() const
   {
     //func由于加了const修饰,不能修改本类的成员变量
   }
};



TymonHuang
TymonHuang
回复 @quanwei9958 : 原来如此, 谢谢回答!
quanwei9958
quanwei9958
这是c++的一个特性,c不支持
0
TymonHuang
TymonHuang

引用来自“quanwei9958”的评论

在类中使用const

class A
{
   public:
   void func() const
   {
     //func由于加了const修饰,不能修改本类的成员变量
   }
};



谢谢你的回答
0
中山野鬼
中山野鬼
哈,有点错乱了。这样的做法目的是什么呢?对于函数而言。
中山野鬼
中山野鬼
回复 @quanwei9958 : 结构体是个存储空间,里面不能有成员函数哦。只能有函数指针哦。如果是函数指针,是可以const哦。不过这个不是const一个函数哦。哈。
quanwei9958
quanwei9958
让成员函数的功能更明确,更清晰,同时也能在编译期检查出潜在的bug
0
中山野鬼
中山野鬼

 @quanwei9958

你说的是不是这种情况。哈。

static int count0(int a,int b){
   return a + b;
}
static int count1(int a,int b){
   return a - b;
}
static int count2(int a,int b){
   return a / b;
}
typedef int (*pCountfunc)(int,int);
typedef struct{
   int a;
   int b;
   pCountfunc pfunc;
}_COUNT;
const _COUNT counttest = {0,1,count1};



quanwei9958
quanwei9958
不是,我说的是class里 ...
返回顶部
顶部