拷贝构造函数和赋值构造函数调用次序
2009-04-08 10:37
316 查看
class CPrintElement
{
public:
KC_PRINT_TYPE kptType; ///< 要打印的元素类型
bool bHasPrint; ///< 是否打印过;初始时表示是否用来重新计算高度
char chFontName[32];///< 元素字体的名称
int iPointSize; ///< 元素字体的尺寸,已经乘过10
void *ptr; ///< 元素的指针
char **chEleName;///< 元素名称的指针数组
int iLeftSep; ///< 相对于左边的相对位置
int iTopSep; ///< 相对于上一个元素的间隔
int iCurItem; ///< 对于要打印多个项的元素,断页时的正在打印的项
int *piWidth; ///< 元素的宽度和高度
int *piHeight; ///<
int *piFormat; ///< 元素的对齐方式
public:
CPrintElement();
CPrintElement(const CPrintElement &temp);
virtual ~CPrintElement();
CPrintElement& operator =(const CPrintElement &temp);
void DeleteMem();
void InitialElement(CWnd *pWnd, KC_PRINT_TYPE printType, CString strContent,
int &iLastEleRight, int &iLastEleBottom);
};
CPrintElement::CPrintElement(const CPrintElement& temp){}
CPrintElement& CPrintElement::operator =(const CPrintElement& temp){ return *this;}
int main()
{
CPrintElement ele1; // 调用构造函数
elel1.InitialElement(.....);
CPrintElement ele2=ele1; // ele2对象不存在,所以调用拷贝构造函数,进行构造过程
ele2.InitialElement(...);
elel2=ele1; // ele2对象已经存在,进行赋值构造函数
}
调用次序如下:
构造函数
拷贝构造函数
赋值构造函数
析构函数
析构函数
{
public:
KC_PRINT_TYPE kptType; ///< 要打印的元素类型
bool bHasPrint; ///< 是否打印过;初始时表示是否用来重新计算高度
char chFontName[32];///< 元素字体的名称
int iPointSize; ///< 元素字体的尺寸,已经乘过10
void *ptr; ///< 元素的指针
char **chEleName;///< 元素名称的指针数组
int iLeftSep; ///< 相对于左边的相对位置
int iTopSep; ///< 相对于上一个元素的间隔
int iCurItem; ///< 对于要打印多个项的元素,断页时的正在打印的项
int *piWidth; ///< 元素的宽度和高度
int *piHeight; ///<
int *piFormat; ///< 元素的对齐方式
public:
CPrintElement();
CPrintElement(const CPrintElement &temp);
virtual ~CPrintElement();
CPrintElement& operator =(const CPrintElement &temp);
void DeleteMem();
void InitialElement(CWnd *pWnd, KC_PRINT_TYPE printType, CString strContent,
int &iLastEleRight, int &iLastEleBottom);
};
CPrintElement::CPrintElement(const CPrintElement& temp){}
CPrintElement& CPrintElement::operator =(const CPrintElement& temp){ return *this;}
int main()
{
CPrintElement ele1; // 调用构造函数
elel1.InitialElement(.....);
CPrintElement ele2=ele1; // ele2对象不存在,所以调用拷贝构造函数,进行构造过程
ele2.InitialElement(...);
elel2=ele1; // ele2对象已经存在,进行赋值构造函数
}
调用次序如下:
构造函数
拷贝构造函数
赋值构造函数
析构函数
析构函数
相关文章推荐
- C++ 构造函数,赋值构造函数,析构函数,赋值构造函数的调用次序
- 拷贝构造函数 赋值构造函数 自动转型构造函数的调用
- 构造函数,拷贝构造函数,赋值构造函数的调用机制
- 对构造函数、拷贝构造函数和赋值操作符调用的简单回顾
- 构造函数,拷贝构造函数,赋值操作符的调用时机
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 对构造函数、拷贝构造函数和赋值操作符调用的简单回顾
- 构造函数,拷贝构造函数,以及赋值操作调用的具体使用
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- C++ 拷贝构造函数 赋值构造函数
- c++ 构造函数,复制构造函数,赋值构造函数,析构函数调用时机
- 关于类的拷贝构造函数、赋值构造函数探究
- C++面试题,自己实现String类的构造函数,拷贝构造函数,赋值操作符,append,replace,+运算符重载等
- C++什么时候调用拷贝构造函数和什么时候调用构造函数
- 构造函数、拷贝构造函数、赋值操作符、析构函数、debug与release
- C++:派生类的默认构造函数和拷贝构造函数调用基类构造函数的机制(含程序验证)
- C++中的构造函数,拷贝构造函数和赋值运算
- 继承中构造函数和析构函数的调用次序
- 基类子类构造函数与析构函数调用次序