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;
};
答案 0 :(得分:9)
第一个通知编译器该方法不会更改调用它的对象的任何成员变量,也只会调用其他const方法。
基本上,它保证了该方法没有副作用。
第二个指定传递引用引用的对象不会被修改 - 只会调用它上面的const方法。
C#中没有等效的签名。
答案 1 :(得分:6)
IsEmpty()
是一个const限定的成员函数。这意味着this
指针是const限定的,因此它的类型为const MaxPQ*
。 IsEmpty()
内的代码不能调用this
上任何本身不符合const限制的成员函数,也不能修改任何非mutable
的数据成员。
据我所知,C#中没有类似内容。