标签:价值 其它 调用 修改 指针 错误 pre 指针传递 value
类型前加const修饰符可声明常量。
const int value; //value是const
const char *value; //*value是const, value可变
const (char *) value; //value是const,*value可变
char* const value; //value是const,*value可变
const char* const value; //value和*value都是const
int const value; // value是const
char const * value; // *value是const, value可变
(char *) const value; //value是const,*value可变
char* const value; // value是const,*value可变
char const* const value; // value和*value都是const
const在左侧指针所指的值不可改变,const在右侧指针不可改变。
函数参数类型前加const指明该参数为常量,在函数内部不可改变。
void func(const int x) {
//x不可以在内部进行赋值等操作.
}
注:当参数为引用传递或者指针传递作为输出时,都不能加const
const int* func(void) //函数声明
...
int* a = func(); //报错
const int* b = func() //正确
const int& func(void) //函数声明
...
int a = func(); //正确
const int& b = func() //正确
int& c = func() //报错
任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误。
class test
{
public:
void func(){}
int getNum(void) const // const 成员函数
{
++num; // 编译错误,企图修改数据成员m_num
func(); // 编译错误,企图调用非const函数
return num;
}
private:
int num;
};
标签:价值 其它 调用 修改 指针 错误 pre 指针传递 value
原文地址:https://www.cnblogs.com/narjaja/p/9275805.html