gpt4 book ai didi

c++ - 使用 char c++ 重载运算符

转载 作者:行者123 更新时间:2023-11-30 01:45:39 25 4
gpt4 key购买 nike

我正在为有关重载运算符的类(class)做家庭作业。我遇到的问题是一个字符。

RetailItem &RetailItem::operator=(const RetailItem &objRetail) {    
this->description = objRetail.getDescription();
this->unitsOnHand = objRetail.getUnitsOnHand();
this->price = objRetail.getPrice();
return *this;
}

我在 Visual Studio 上收到一条消息:

a value of type const char * cannot be assigned to an entity of type char *.

我做了一些研究,但没有发现任何东西。如果有人可以提供帮助,请提前致谢。

编辑:

我将添加 getDescription 函数以提供更多信息。描述也是一个 *char

const char *RetailItem::getDescription() const{

return description;
}

最佳答案

可能 RetailItem::descriptionchar* 并且RetailItem::getDescription 转换这个char *const char* 并返回它。您可以隐式添加 const 限定符,但您不能在赋值中以相同的方式删除它们:

this->description = objRetail.getDescription();

而您可能不应该。这将使两个 RetailItem 引用相同的资源,但没有正确管理其生命周期,也没有释放之前持有的内存(如果它确实是指向动态分配数组的指针)。

这归结为:您应该更喜欢使用 std::string 而不是数组。

关于c++ - 使用 char c++ 重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34292029/

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