gpt4 book ai didi

c++ - 如何创建一个可以初始化 C++ 数据类型的类?

转载 作者:太空狗 更新时间:2023-10-29 19:46:49 26 4
gpt4 key购买 nike

标题基本上说明了一切。我主要想这样做,以便我可以创建一个对象(比如,一个自定义字符串对象)来初始化其他 API 中其他函数的参数。这是我尝试让自定义整数类工作的示例:

#include <iostream>
using namespace std;

class test
{
public:
int member;
test(int i) : member(i) {}

friend int &operator=(int &i, test t);
};

int &operator=(int &i, test t)
{
return (i = t.member);
}

int main()
{
int i;
test t = 90;

cout << (i = t);
return 0;
}

不幸的是,我收到一条错误消息,指出 operator= 需要成为成员函数。我理解 C++ 标准的目标是防止实现赋值运算符的静态和非成员重载,但是还有其他方法可以做到这一点吗?感谢您的帮助/建议!

最佳答案

这不是通过赋值运算符完成的,而是通过重载的类型转换完成的。这将使您的主要功能按预期工作:

#include <iostream>
using namespace std;

class test
{
public:
int member;
test(int i) : member(i) {}
operator int() const {return member;}
};

int main()
{
int i;
test t = 90;

cout << (i = t);
return 0;
}

关于c++ - 如何创建一个可以初始化 C++ 数据类型的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com