void printValue(const int value) { // value = 10; // 错误,无法修改const参数 std::cout << value << std::endl; } int main() { int num = 5; printValue(num); // 传入num的值作为const参数 return 0; }
const int getValue() { return 5; } int main() { const int result = getValue(); // 将返回值作为const变量保存 // result = 10; // 错误,无法修改const变量 std::cout << result << std::endl; return 0; }
class MyClass { public: void printValue() const { // value = 10; // 错误,无法修改成员变量 std::cout << value << std::endl; } private: int value = 5; }; int main() { const MyClass obj; obj.printValue(); // 调用const成员函数 return 0; }
当我们说print()是一个类的常成员函数时,这意味着该函数不会修改它所属的对象的任何数据成员,并且可以在常对象上调用。
选项中,只有一个表示方法能正确地声明常成员函数:
C.void print() const;
这告诉编译器print()函数不会修改它所属的对象。
其他选项的解释:
A.const void print();这表示函数返回一个const void类型,这实际上是没有意义的,因为void本身就意味着没有返回值。
B.void const print();这与 A 是相同的,只是关键字的位置不同。
D.void print(const);这是不完整的。它似乎试图声明一个带有const参数的函数,但未指定参数的类型。
因此,正确的答案是 C。