const表示什么?

时间:2010-09-19 21:21:18

标签: c# c++

const在以下C ++代码中表示什么?在C#中,这相当于什么?我在C#中编码,我正在尝试学习C ++。

template <class T> class MaximumPQ { 
public:
virtual ~MaximumPQ () {}

virtual bool IsEmpty () const = 0;    

virtual void Push(const T&) = 0;

virtual void Pop () = 0;
};

2 个答案:

答案 0 :(得分:9)

第一个通知编译器该方法不会更改调用它的对象的任何成员变量,也只会调用其他const方法。

基本上,它保证了该方法没有副作用。

第二个指定传递引用引用的对象不会被修改 - 只会调用它上面的const方法。

C#中没有等效的签名。

答案 1 :(得分:6)

IsEmpty()是一个const限定的成员函数。这意味着this指针是const限定的,因此它的类型为const MaxPQ*IsEmpty()内的代码不能调用this上任何本身不符合const限制的成员函数,也不能修改任何非mutable的数据成员。

据我所知,C#中没有类似内容。