C++ 使用 main.cpp 文件中的对象

C++ Use object from main.cpp's file

本文关键字:对象 文件 cpp 使用 main C++      更新时间:2023-10-16

我有一个程序(matrix.hpp、matrix.cpp、main.cpp)和类matrix_t。在main.cpp中,我用构造函数的类创建了一个对象"a",并且在matrix.cpp中有一个函数:

it_t Matrix_t::element(ix_t i,ix_t j,Matrix_t& SM){
   if ((i<1)||(i>m_)||(j<1)||(j>n_)){
  cerr << "Error" << endl;
  return 0;    }
   int pos = (i-1)*SM.n_+j-1;
   return SM.base_[pos]; }

如果我在matrix.cpp中创建了一个新对象"B",我可以用这种方式调用上一个函数:元素(1,1,B)。但是如果我传递在main.cpp中创建的对象"A"?如果我编码:element(1,1,A),我会得到一个错误(a没有声明,逻辑)。

用"A"对象调用element()的形式是什么?

PD:这是主.cpp

 int main(int argc,char** argv) 
 {   Matrix_t A;
 A.read(cin);   
     A.write(cout);
 const double det=A.determinant();  
     cout << "Determinant: " << det <<
                        "n" << endl;
    return 0; 
  }

您可以在范围内的A上调用Matrix_t::element,其中A可见。所以在的主要功能

 #include <iostream>
 #include "matrix.hpp"
 using namespace std;
 int main(int argc,char** argv) 
 {
     Matrix_t A;
     A.read(cin);   
     A.write(cout);
     const double det=A.determinant();  
     cout << "Determinant: " << det << "n" << endl;

    //-----------
    auto z = A.element(1,1,B);
    // or if you wish, B.element(1,1,A)
    //-----------
    return 0; 
  }