【发布时间】:2019-07-11 12:30:51
【问题描述】:
编辑
我正在通过我就读的大学提出的一系列问题来学习 C++。以下是相关问题的摘录:
一家零售商商店希望存储有关其销售的信息。典型信息 它希望存储的销售信息是: 销售识别号(唯一的 每笔销售的编号)、客户的姓氏和其他姓名以及 客户的地址。一次销售最多可以包含 10 种不同的商品,其中 每个项目的数量不同。对于每个项目,销售类应该存储 项目编号、项目描述、单位成本和项目的单位数量 购买的商品以及商品的总成本。
TLDR:我正在尝试为包含一个数组作为其属性之一的类编写一个构造函数。
背景
我正在学习 C++ 中的类,目前正在尝试接口。
代码
为了清楚起见,这里是一个简化版的界面,只显示了构造函数:
销售.h
class Sale {
int* products_id[];
public:
Sale(int& products_id[]);
};
现在,需要实现接口:
销售.cpp
#include "Sale.h"
Sale::Sale(int& product_id[]) {
this->product_id[] = product_id[];
};
问题
-
由于某些原因,我的 IDE(VS Code)报错了
不存在从“product_id”到“product_id *”的合适转换函数
我无法在线找到任何相关资源。
如果有人可以帮助我或至少为我指明正确的方向,我将不胜感激。 问候。
【问题讨论】:
-
你是如何学习 C++ 的?
int* products_id[]成员和int& products_id[]让我觉得你的学习资源对你不利。你看过我们的curated book list了吗? -
这里有好几层问题。最外层(如果我们忽略 IDE 与编译器的区别)是您试图将“整数”分配给“整数指针”。下一个是您正在接受一组引用。接下来是您分配数组的语法不是 C++。接下来是在 C/C++ 中没有分配原始 C 数组这样的事情。下一个是您可能不希望将指针数组作为类“属性”。下一个是您没有为阵列分配内存。下一个是数组衰减到指针(大小!)等等。
-
我的建议是你要么去学习数组和指针,不要用这些不必要的 OOP 东西弄乱你的程序(和你的学习经验),或者去学习/使用
std::vector和std::array并忘记所有关于C 数组的事情。虽然,您将永远能够在不了解内存和对象布局/生命周期的情况下推进编程。 -
@yzt 我已经编辑了这个问题。请检查一下。
标签: c++ arrays oop object interface