如何判断一个方法是否修改了类?

我正在编写 C++ 代码,并且我有一个包含许多成员方法的类。例如,print()act();前者不会修改类的内部结构(即变量i),而后者会。

class Example {
    int i;

    void act() { i++; };
    void print() { };

在这种情况下这是显而易见的,但是对于较长的方法,或者定义和声明已经分开的方法,哪些方法可以改变对象并不明显。有没有一种方法可以明确表示方法是不可修改的?

(作为另一种语言的例子,在 CI 中可能会传递一个指向对象的指针。如果一个函数是非修改的,我会传递一个常量指针。)

回答

有没有一种方法可以明确表示方法是不可修改的?

是的。将其标记为const,例如:

void print() const;

这会将this方法体内的指针标记为指向一个const对象(即const Example *this)。任何通过该this指针修改该对象的尝试都会导致编译器错误。


以上是如何判断一个方法是否修改了类?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>