C++学习之用户自定义类的强制类型转换

mac2022-06-30  26

在C++中我们使用C++的基本类型的时候有时候会需要强制类型转换,比如说void转换为int。但是如果使我们自定义类型的怎么办,在C++我们可以通过重载operator typename()来实现。

下面是代码:

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; class A { public: int data = 123456; void print(){cout << "this is A" <<data << endl;} A(int num):data(num){} A(){} }; class B { public: A a = 654321; A * pa = new A(987); void print(){cout << " this is B" << endl;} operator A() {return a;} operator A*(){return pa;} }; int main() { A a; B b; a = A (b); a.print(); A *pa = (A*)b; pa->print(); return 0; }
最新回复(0)