类中的这两个成员函数: const int fun(){} 和 int fun() const{}...
发布网友
发布时间:2024-10-09 05:16
我来回答
共5个回答
热心网友
时间:2024-10-12 08:15
const int fun(){} 和 int fun() const{}肯定是不一样的。
1.const int fun(){} 此处的const其实没有意义,等同于 int fun(){} ,因为函数返回的本身是一个固定值,加不加const无所谓,它只是类的一个普通的成员函数而已。
2.int fun() const{} 则是类的常成员函数。它不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数(这就保证了在常成员函数中绝对不会更改数据成员的值)。
3.如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其他成员函数。
热心网友
时间:2024-10-12 08:10
不一样
1、返回值不一样,第一个是const int 第二个是int
2、第一个允许修改类得成员变量的值。第二个不允许
例如:
struct A
{
A(int v):a(v),b(v){}
const int func()
{
a++;//ok 可以修改成员变量值
return a;
}
int func() const
{
b++;//error 不能修改成员变量值
return b;
}
int a;
int b;
};
热心网友
时间:2024-10-12 08:17
#include <iostream>
using namespace std;
class A{
public:
A(int x,int y):m_n(x),m_x(y){}
void foo(void) const
{
}
const int bar(void)
{
}
ostream& operator>> (ostream& os) const
{
return os<<" "<<m_n<<" "<<m_x;
}
private:
int m_n;
int m_x;
};
int main()
{
A pa(10,20);
//pa.foo();//无法调用 foo()是一个常函数 .是不能修改函数内的成员变量的值//只有const对象才能调用
pa.bar();//可以调用 bar()是一个const int类型的返回值,这个返回值无法修改
pa>>cout<<endl;
}
热心网友
时间:2024-10-12 08:11
const int fun(){} 表示函数不能为左值。必须用一个变量来接收他得返回
例如:int a = const int fun();//正确
const int fun();//直接调用会报错
int fun() const{}这个表示类中的const成员也能调用这个函数。
热心网友
时间:2024-10-12 08:10
1.const int fun(){} 是函数fun()返回一个int型常量。
2.int fun() const{} 称为常函数。当声明了一个类的常对象后,这个常对象只允许该类的常成员函数操作。