|

楼主 |
发表于 2017-4-22 13:56:23
|
显示全部楼层
感觉忘了点啥,对的,类型转换函数
这个函数只能以类的成员函数的形式出现,需要用到的时候直接进行等号赋值即可
例:
- #include<iostream>
- using namespace std;
- class Complex
- {
- public:
- Complex(const Complex&);
- Complex(int, double);
- operator double() const { return b; }
- private:
- int m_a;
- float b;
- };
- Complex::Complex(int i = 0, double j = 0) :m_a(i), b(j)
- {
- }
- Complex::Complex(const Complex &a)
- {
- this->m_a = a.m_a;
- cout << "Copy" << endl;
- }
- int main()
- {
- Complex a(1, 7.64);
- double b = a;
- cout << b;
- return 0;
- }
复制代码
在默认的情况下,这个类型转换会将第一个成员变量通过基础类型转换来进行复制(如果第一个参数类型无法通过基础的类型转换的话则会提示出错) |
|