要实现这样的功能,你可以在类 A 中重载相关的运算符和函数。首先,你可以重载类 A 的转换运算符,将其转换为 int 类型,然后在类 A 中定义一个函数 helloworld()。

下面是一个示例代码:

#include <iostream>

class A {
private:
    int value;
public:
    A(int val) : value(val) {}

    operator int() const {
        return value;
    }

    void helloworld() const {
        std::cout << 'Hello World!' << std::endl;
    }
};

int main() {
    A a(10);
    printf('%d\n', a); // 相当于 printf('%d', a.operator int());
    a.helloworld(); // 调用对象的函数
    return 0;
}

在上面的代码中,我们在类 A 中定义了一个转换运算符operator int(),它将对象 A 转换为 int 类型。这样,当你使用printf('%d', a)时,编译器会自动调用转换运算符将对象 a 转换为 int 类型。而当你调用a.helloworld()时,它会调用对象 a 的函数 helloworld(),这两个操作是相互独立的。

C++ 类对象重载运算符实现变量直接使用和函数调用

原文地址: http://www.cveoy.top/t/topic/iVRy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录