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

问题描述

我正在尝试使用像这样的成员函数来初始化一个类矩阵

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];
    }
}

不要忘记添加析构函数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...