什么是const 对象,举个例子
时间: 2023-04-01 09:00:32 浏览: 143
const 对象是指在定义时被声明为只读的对象,其值不能被修改。例如:
const int a = 10; // 定义一个只读的整型变量a,其值为10
const char* str = "hello"; // 定义一个只读的字符指针变量str,其指向的字符串为"hello"
相关问题
智能指针可以用const修饰吗 举例子
智能指针可以使用const修饰,这样可以保证指针指向的对象不被修改。
例如:
```c++
#include <memory>
#include <iostream>
int main()
{
const std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << *ptr << std::endl; // 输出 10
// 尝试修改指针指向的对象,编译报错
// *ptr = 20;
return 0;
}
```
在上面的例子中,我们使用了`const`关键字修饰了指向`int`类型的`unique_ptr`指针`ptr`,这表示该指针所指向的对象不能被修改。如果尝试修改指针所指向的对象,编译器会报错。
Nodes &operator=(const Nodes &)举个例子
`Nodes &operator=(const Nodes &)`是一个重载的赋值运算符,它的作用是将一个`Nodes`对象的内容复制到另一个`Nodes`对象中,并返回一个引用指向第一个对象自身,以便链式赋值。在C++中,这是为了支持`vector<Nodes> nodes; nodes.resize(...); nodes[i] = someOtherNode;`这样的语法。
这里举个简单的`Nodes`类的例子,假设`Nodes`是一个拥有整数值的数据结构:
```cpp
class Nodes {
private:
int value;
public:
// 构造函数
Nodes(int val = 0) : value(val) {}
// 赋值运算符
Nodes &operator=(const Nodes &other) {
if (this != &other) { // 防止self-assignment
value = other.value;
}
return *this; // 返回当前对象的引用
}
// 其他方法...
};
```
在这个例子中,当你做`Nodes a(5); Nodes b(7); a = b;`时,实际上是把b的value(7)赋给了a,而a的引用`&a`被返回并用于后续操作,实现了对象之间的数据传递。
阅读全文