我们可以在 C++ 中的 class 的成员函数中使用 cin>> 吗?

can we use cin>> in member functions in a class in C++?

我正在尝试使用像 thiis

这样的成员函数来初始化 class 矩阵
class mat{
    int r,c;
    float **p;
    
    public:
    
    mat(){}
    mat(int,int);
    void initialize();
};
mat :: mat (int r, int c){ //check for float and int if error occurs
    p=new float*[r];
    for(int i=0; i<r; ++i){
        p[i]=new float(c);
    }
void mat :: initialize(void){
    int i,j;
    cout<<"\nEnter the elements : ";
    for(i=0;i<r;++i){
        for(j=0;j<c;++j){
            cin>>p[i][j];
        }
    }
}
int main(){
    mat m1(3,3);
    cout<<"\nInitialize M1";
    m1.initialize();
    
    
    return(0);
}

但是当我编译并 运行 它并尝试初始化矩阵时,程序永远不会停止接收输入。 谁能告诉我我做错了什么?

您需要像这样初始化 rc

mat :: mat (int r, int c) :r(r), c(c){
    p=new float*[r];
    for(int i=0; i<r; ++i){
        p[i]=new float[c];
    }
}

并且不要忘记添加析构函数。