这是我的代码:
#include <iostream>
using namespace std;
class Sp
{
private :
int a;
int b;
public:
Sp(int x = 0,int y = 0) : a(x), b(y) { };
int max(int x,int y);
};
int Sp::max(int a,int b) { return (a > b ? a : b); };
int main()
{
int q,q1;
cin >> q >>q1;
Sp *mm = new Sp(q,q1);
cout << mm.max(q,q1);
return 0;
}
答案 0 :(得分:1)
mm
是指向Sp
的指针;您需要使用->
,而不是.
:
cout << mm->max(q,q1);
但是,无论如何动态创建Sp
对象都没有意义;为什么不呢:
Sp mm(q, q1);
cout << mm.max(q, q1);
现在使用动态分配编写它时,不会破坏使用delete
创建的对象,这是一种常见的编程错误。
答案 1 :(得分:1)
而不是:mm.max(q,q1);
你需要使用:mm->max(q,q1);
mm是一个指针,需要这样解决。
或者,你可以说:
Sp mm(q,q1);
cout<< mm.max(q,q1);
并避免指针一起使用。