C++中类后加一个函数是什么意思

class X {
int i;
public:
X(int ii = 0);
void modify();
};

X::X(int ii) { i = ii; }//定义成员函数

void X::modify() { i++; }

X f5() {//??这是什么呢?
return X();
}

const X f6() {//???
return X();
}

void f7(X& x) { // Pass by non-const reference
x.modify();
}

int main() {
f5() = X(1); // OK -- non-const return value
f5().modify(); // OK
// Causes compile-time errors:
//! f7(f5());
//! f6() = X(1);
//! f6().modify();
//! f7(f6());
}
见那注释那,谢谢啊

X f5()是定义一个返回类型为X的函数
如果你感觉不好理解的话把X换成int去考虑
就是f5这个函数返回了一个X类类型的变量追问

那这个函数跟类X有什么关系呢?是类中的成员函数吗?

追答

没有任何关系,因为没在类内部定义这个函数,这个是一个全局函数

追问

那还加个X在前面干什么啊?不是多此一举吗?

追答

你定义一个返回值为整形的变量的函数要定义成int a();定义返回布尔类型的函数要bool a();这个返回类型是X,当然要定义成X f5();

追问

有点意思,明白了。。。谢谢啊

温馨提示:答案为网友推荐,仅供参考
相似回答