const修饰友缘函数
时间: 2024-06-17 16:02:47 浏览: 122
const修饰的成员函数被称为常量成员函数,它表示该函数不会修改对象的状态。对于常量对象,只能调用常量成员函数,而不能调用非常量成员函数。
友元函数是在类外部定义的,但是可以访问类的私有成员。当友元函数被声明为const时,它表示该函数不会修改对象的状态,而且可以被常量对象调用。
因此,const修饰友缘函数表示该友缘函数不会修改对象的状态,并且可以被常量对象调用。
举个例子:
```
class MyClass {
private:
int x;
public:
MyClass(int val): x(val) {}
friend void print(const MyClass& obj);
};
void print(const MyClass& obj) {
std::cout << obj.x << std::endl;
}
int main() {
const MyClass obj(42);
print(obj); // 可以调用,输出42
return 0;
}
```
在上面的例子中,print()函数被声明为const,因此它可以被常量对象调用。同时,由于它是MyClass的友缘函数,可以访问私有成员x。在main函数中,我们创建了一个常量对象obj,并将其传递给print()函数进行输出。由于print()函数不会修改对象的状态,因此可以被常量对象调用。
阅读全文