例如,
矩阵.h
namespace Matrix
{
class mat
{
public:
mat(int row, int col);
const mat &operator=(const mat &rhs);
}
}
矩阵.cpp
Matrix::mat::mat(int row, int col)
{ // implementation here }
const Matrix::mat &Matrix::mat::operator=(const mat &rhs)
{ // implementation here }
上面的代码将毫无问题地编译。问题是,我应该把命名空间标识符放在参数前面,比如const mat operator=(const Matrix::mat &rhs);
and
const Matrix::mat Matrix::mat::operator=(const Matrix::mat &rhs)
吗?执行此操作的常规方法是什么,为什么它会在不添加标识符的情况下进行编译?