Posted on 2007-10-01 01:08
ZelluX 阅读(384)
评论(0) 编辑 收藏 所属分类:
C/C++
C++ 学习笔记(6)
1. 类声明中定义的函数都被自动处理为inline函数。
2. Triangular t5(); 这句话似乎声明了一个类的实例,但事实上,C++为了保持与C语法的一致,该语句会被解释成一个返回Triangular对象的函数;正确的声明应该去掉()。
3. 考虑下面一段代码
class Matrix {
public:
Matrix( int row, int col ) // ...
~Matrix() { delete [] _pmat; }
private:
int _row, _col;
double *_pmat;
};
{
Matrix mat(4, 4);
{
Matrix mat2 = mat;
}
}
把mat复制给mat2后,mat2中的_pmat与mat的_pmat指向同一个数组,在mat2所在的域结束后,mat2被释放,同时删除了_pmat指针指向的内容。错误发生。
解决办法是在Matrix::Matrix( const Matrix &rhs )中详细指出深层拷贝的方法,同时实现赋值操作符的重载。
4. mutable 和 const
const方法无法修改类的成员,mutable成员除外。