C++关于类成员函数在参数列表后加const的作用,以及使用条件
2017-07-25 17:06
801 查看
const 修饰函数,只能用于类的成员函数的后面
#include <stdio.h>
class CTestFuncConst
{
int b;
public:
CTestFuncConst() : b(0){};
~CTestFuncConst(){};
const int *PFunc(int &a) const;
// const int *PFunc(int &a); // 与下面的函数造成了歧义,重定义了
int *PFunc(int &a);
};
// 最后这const用于修饰该函数,表示在函数内不能改变其对应对象的成员变量的值
const int *CTestFuncConst::PFunc(int &a) const
{
a = 10;
// b = a; // 错误,被const修饰的函数不能修改对象的成员变量
return &a;
}
int *CTestFuncConst::PFunc(int &a)
{
a = 5;
b = a; // 允许
return &a;
}
int main()
{
CTestFuncConst NormalTest; // 非const对象可调用被const修饰的成员函数,也可调用普通成员函数
const CTestFuncConst ConstTest; // const对象只能调用被const修饰的成员函数
int a;
printf("%d\n", *NormalTest.PFunc(a));
printf("%d\n", *ConstTest.PFunc(a));
getchar();
return 0;
}
#include <stdio.h>
class CTestFuncConst
{
int b;
public:
CTestFuncConst() : b(0){};
~CTestFuncConst(){};
const int *PFunc(int &a) const;
// const int *PFunc(int &a); // 与下面的函数造成了歧义,重定义了
int *PFunc(int &a);
};
// 最后这const用于修饰该函数,表示在函数内不能改变其对应对象的成员变量的值
const int *CTestFuncConst::PFunc(int &a) const
{
a = 10;
// b = a; // 错误,被const修饰的函数不能修改对象的成员变量
return &a;
}
int *CTestFuncConst::PFunc(int &a)
{
a = 5;
b = a; // 允许
return &a;
}
int main()
{
CTestFuncConst NormalTest; // 非const对象可调用被const修饰的成员函数,也可调用普通成员函数
const CTestFuncConst ConstTest; // const对象只能调用被const修饰的成员函数
int a;
printf("%d\n", *NormalTest.PFunc(a));
printf("%d\n", *ConstTest.PFunc(a));
getchar();
return 0;
}
相关文章推荐
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- 学习笔记 C++ const放在函数体前和函数参数列表之后的作用
- C++ 成员函数后面加const,没有const,以及使用的区别
- C++ 关于static_cast reinterpret_cast dynamic_cast 以及 const_cast 用于类型转换的函数使用 20180315 day7
- C++ const 参数 成员函数 规则
- c++中成员变量访问以及const的使用总结
- 函数调用缺少参数列表;请使用“&****Dlg::getThread”创建指向成员的指针”--多线程函数调用
- c++ const: const 变量, const 输入参数, const 返回值, const 成员函数
- 关于c++ const 函数参数
- 【c++基础】虚函数的使用以及和成员函数的区别
- C#关于静态函数与普通函数之间的调用问题,以及可变参数的使用
- error C3867: “Point::getX”: 函数调用缺少参数列表;请使用“&Point::getX”创建指向成员的指针
- const可以出现在函数头,参数列表,以及参数尾
- C++中关于流以及参数传递形式的解析和使用。
- 成员函数后面加const,没有const,以及使用的区别
- C++成员函数末尾const关键字的作用
- 关于c++中的const ,包括void fool() const;这个函数中的const的作用
- 成员函数后面加const,没有const,以及使用的区别
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- 关于C++成员函数指针的使用