我们可以在 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);
}
但是当我编译并 运行 它并尝试初始化矩阵时,程序永远不会停止接收输入。
谁能告诉我我做错了什么?
您需要像这样初始化 r
和 c
:
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];
}
}
并且不要忘记添加析构函数。
我正在尝试使用像 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);
}
但是当我编译并 运行 它并尝试初始化矩阵时,程序永远不会停止接收输入。 谁能告诉我我做错了什么?
您需要像这样初始化 r
和 c
:
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];
}
}
并且不要忘记添加析构函数。