有助于理解构造函数、运算符重载、析构函数等
A bit of help understanding constructors, operator overloads, destructors, etc
所以我是C++初学者,我有一个问题。
假设我们有一个班级成绩。
从我目前所了解到的情况来看,析构函数看起来像
~Grades();
复制构造函数:
Grades(const Grades & );
<lt;操作员:
ostream & operator << (ostream & os, const Grades & g);
这些是正确的吗?
常规构造函数会是什么样子?转换构造函数呢?
编译器提供的常规默认构造函数如下所示,如果它是从任何类派生的,它将在内部调用base class
构造函数。稍后,对于具有用户定义类型的数据成员,它将按照声明的顺序调用它们各自的默认构造函数。
Grades();
转换构造函数是您必须定义的东西,它们看起来像
Grade(const T&)
如果你想要转换功能,
Grade operator=(const T&)
您唯一可以拥有的destructor
是假设通过调用相应的destructors
(如果是用户定义的数据成员)和基类来取消初始化对象,这与默认编译器提供的构造函数提供的顺序完全相反。
相关文章:
- 重载运算符new[]的行为取决于析构函数
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如果我也使用复制构造函数并且重载 = 运算符,我是否需要析构函数?
- 为什么在析构函数中引发异常时不调用重载删除
- 重载运算符=,类C++中麻烦的析构函数
- 赋值重载显式调用析构函数(在执行其他二进制重载运算符之后)
- 图像类的析构函数和重载 = 运算符
- 析构函数调用AFTER重载赋值运算符,调用-C++
- 重载的*运算符在多个*操作后调用析构函数时失败
- 有助于理解构造函数、运算符重载、析构函数等
- 为什么有两个额外的析构函数调用,因为我只创建了两个对象并使用重载赋值运算符和增量运算符
- 析构函数与重载删除
- <<运算符重载在使用析构函数时返回 null
- 在操作符重载时调用析构函数
- 重载= STATUS_ACCESS_VIOLATION中析构函数的问题
- 矩阵类操作符重载,析构函数问题
- 创建了自己的字符串类——重载赋值操作符和析构函数的错误
- 退出重载赋值操作符将调用析构函数来删除对象
- c++运算符重载,则调用析构函数
- 我收到一个错误:重载运算符= 时'&'令牌之前的预期构造函数、析构函数或类型转换=