不确定 c++ 中的常量函数是什么
Not sure what a constant function is in c++
赋值是创建一个返回矩形面积的常量函数getArea()
。
double getArea() {
return width * height;
}
是这样吗?
我是否在参数后放置常量?
我真的不明白我被问到什么。
在C++中,当 const 关键字用于函数的声明时,函数将变为 const。const 函数的想法是不允许它们修改调用它们的对象。
double getArea() const {
return width * height;
}
const 在函数声明中的 (空) 参数列表之后。 表示 getArea() 函数不修改对象的状态,即对象的数据成员。
有关更多说明,请参阅此链接: http://www.codeproject.com/Articles/389602/Constant-Member-Functions-Are-Not-Always-Constant
double getArea() const
{
return width * height;
}
当用户不想修改或更改该变量或函数的值时,将使用 const 关键字。
就像内置数据类型(int
、double
、char
等)一样,类对象可以使用const
关键字const
。所有const
变量都必须在创建时初始化。
一旦通过构造函数初始化了const
类对象,就不允许任何修改对象成员变量的尝试,因为这会违反对象的恒定性。这包括直接更改成员变量(如果它们是公共的),或调用设置成员变量值的成员函数。
const
类对象只能调用const
成员函数。const
成员函数是保证它不会更改任何类变量或调用任何非常量成员函数的成员函数。
来源 :leancpp.com
考虑:
class ClassType
{
int x;
public:
ClassType(int _x) : x(_x) {}
int GetX() { return x;}
};
const ClassType object(20);
object.GetX();
这将无法编译,因为object
是 const(只读)。但GetX
未标记为const
(只读)。length()
、size()
、IsOpen()
是从只读对象调用的方法的示例。因此,该类应该为常量对象提供这种(const)函数。
您通常不会创建 const 对象,但会像这样传递它们:
void foo(const ClassType& obj);
因此,GetX
函数应为:
int GetX() const { return x;}
const
承诺或约定此函数不会修改此对象。
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 这里的字符串函数是什么意思
- 这个函数是什么意思(我的英语sry)
- C++ 中的 use 函数是什么?
- C++中的编译时函数是什么?
- 使用 DnsQuery 或 getaddrinfo 的正确函数是什么?
- Lua 中看起来像表的函数是什么?
- "AfxIsValidAddress"函数的等效标准函数是什么?
- 子类的构造函数后跟冒号后的基类构造函数是什么意思?
- MFC 用于计算控件的高光、阴影等的算法或函数是什么?
- 具有多个非可选参数的转换构造函数是什么样子的?为什么它有意义
- 不确定 c++ 中的常量函数是什么
- 指针的最快散列函数是什么
- 注册用于提升io_service的每个对象的回调函数是什么?
- 在 g++ 中生成 "-L" 和 -rpath 标志的等效函数是什么
- Boost.Python中的dispatch函数和forwarding函数是什么意思
- 给定情况下的良好哈希函数是什么
- C++ 中的"导出函数"是什么意思?
- C++ std::unordered_map 中使用的默认哈希函数是什么